我是一个CMD批处理脚本内书面方式进行一些文本到文本文件中像这样的:捕捉错误信息没有回声的命令提示符
echo FlagValue=Y>>flag.txt
这通常工作正常,但偶尔如果文本文件是由开放一个不同的过程,一个错误报告返回说拒绝访问。我想要做的是,如果有类似发生错误停止批处理文件:
if return_code GEQ 1 GOTO ERR
却找不到从echo命令返回代码。是否存在,或者有更好的策略来捕获错误信息?
我是一个CMD批处理脚本内书面方式进行一些文本到文本文件中像这样的:捕捉错误信息没有回声的命令提示符
echo FlagValue=Y>>flag.txt
这通常工作正常,但偶尔如果文本文件是由开放一个不同的过程,一个错误报告返回说拒绝访问。我想要做的是,如果有类似发生错误停止批处理文件:
if return_code GEQ 1 GOTO ERR
却找不到从echo命令返回代码。是否存在,或者有更好的策略来捕获错误信息?
每次运行命令时,ERRORLEVEL环境变量都会设置为您的命令的返回值。因此,在运行命令后,请直接尝试echo%ERRORLEVEL%。 (要小心,因为你运行的插图中(包括回声任何命令)将覆盖%ERRORLEVEL%
此外,检查这些出更多的信息:
Can a batch file capture the exit codes of the commands it is invoking?
Batch Files - Error Handling
echo FlagValue=Y>>flag.txt || echo access_denied Ensure you have rights
或
echo FlagValue=Y>>flag.txt
if /i %errorlevel% NEQ 0 do (
echo access_denied Ensure you have rights
call sendmail.cmd
)
样品:
C:\Users\Me\Desktop>echo Hello > MyFile.txt || echo ERROR
Access is denied.
ERROR
C:\Users\Me\Desktop>echo Hello > a.txt || echo ERROR
C:\Users\Me\Desktop>
我试图建立一个小的测试脚本 回声关闭 回声测试线>> FILE1.TXT 呼应错误级别=%ERRORLEVEL% 但导致我回来是 ,因为它正在使用的进程无法访问该文件另一个过程。 errorlevel = 0 – Tadhg 2011-02-28 11:04:13
当你可以**访问文件时,你会得到什么错误级别?即尝试写入另一个文件file2.txt – Joe 2011-02-28 11:07:31
无论我能否写入文件,我仍然得到errorlevel = 0 – Tadhg 2011-02-28 11:55:13