我有一个批处理文件,它只执行复制和xcopy命令的加载,如果它们中的任何一个失败,我都需要跳出复制到goto标签的位置,但是在每次复制后都必须检查错误级别是非常不便的。

我怀疑这不可能,但是有没有办法我可以做大量的复制/xcopy操作并在最后检查错误级别是否超过零?

最佳答案

您可以将操作包装在子例程中;

@echo off
setlocal enabledelayedexpansion
set waserror=0

call:copyIt "copy", "c:\xxx\aaa.fff",  "c:\zzz\"
call:copyIt "xcopy /y", "c:\xxx\aaa.fff",  "c:\zzz\"
call:copyIt "copy", "c:\xxx\aaa.fff",  "c:\zzz\"
call:copyIt "copy", "c:\xxx\aaa.fff",  "c:\zzz\"

goto:eof

:copyIt
    if %waserror%==1 goto:eof
    %~1 "%~2" "%~3"
    if !ERRORLEVEL! neq 0 goto:failed
    goto:eof

:failed
   @echo.failed so aborting
   set waserror=1

关于windows - Windows批处理文件均包含错误级别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9279068/

10-10 13:24