Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何确定批处理脚本是否突然关闭?_Batch File_Cmd - Fatal编程技术网

Batch file 如何确定批处理脚本是否突然关闭?

Batch file 如何确定批处理脚本是否突然关闭?,batch-file,cmd,Batch File,Cmd,我想问一下如何在像这样的批处理脚本上执行代码 IF(Batch script file suddenly close) ECHO SCRIPT FAIL>>LOG.txt ELSE ( ECHO DO PROCESS LIKE ALWAYS 我想检测它,因为如果在XCOPY复制/粘贴过程中发生任何错误,我需要保存在每个日志文件中。如果有批处理文件,请调用要运行的批处理文件?这不会考虑当前正在执行的shell以某种方式被杀死或出错的情况 如果这还不够,您可能需要让脚本检查是否存在由成

我想问一下如何在像这样的批处理脚本上执行代码

IF(Batch script file suddenly close)
ECHO SCRIPT FAIL>>LOG.txt
ELSE (
ECHO DO PROCESS LIKE ALWAYS

我想检测它,因为如果在XCOPY复制/粘贴过程中发生任何错误,我需要保存在每个日志文件中。

如果有批处理文件,请调用要运行的批处理文件?这不会考虑当前正在执行的shell以某种方式被杀死或出错的情况

如果这还不够,您可能需要让脚本检查是否存在由成功完成编写的文件。如果成功文件不存在,则根据需要进行清理

1.bat

@ECHO OFF
SETLOCAL

CALL 2.bat
SET "EXITCODE=%ERRORLEVEL%"
IF %EXITCODE% NEQ 0 (
    ECHO ERROR: Script 2.bat failed, ERRORLEVEL = %EXITCODE%
) ELSE (
    ECHO NB: Back from 2.bat, process normally
)
EXIT /B %EXITCODE%
@ECHO OFF
ECHO NB: Starting 2
ping -n 10 localhost
ECHO NB: in 2 ERRORLEVEL is %ERRORLEVEL%
EXIT /B %ERRORLEVEL%
2.bat

@ECHO OFF
SETLOCAL

CALL 2.bat
SET "EXITCODE=%ERRORLEVEL%"
IF %EXITCODE% NEQ 0 (
    ECHO ERROR: Script 2.bat failed, ERRORLEVEL = %EXITCODE%
) ELSE (
    ECHO NB: Back from 2.bat, process normally
)
EXIT /B %EXITCODE%
@ECHO OFF
ECHO NB: Starting 2
ping -n 10 localhost
ECHO NB: in 2 ERRORLEVEL is %ERRORLEVEL%
EXIT /B %ERRORLEVEL%

你。。。如果脚本突然关闭,是否希望脚本继续运行?什么?我的意思是,如果脚本突然关闭,它将记录在log.txt中以防出错。脚本如何知道它是否意外关闭?脚本不再运行,因此无法执行任何操作。这就像死人不知道自己死了一样。因此,基本上,为了克服这个问题,一旦脚本再次运行,将有一个过程需要确定最后一个脚本是否复制了文件?与其尝试检测脚本是否意外关闭,我将调试脚本并尝试避免意外关闭。。。