这与我之前的问题有关。
ren "C:\Temp\%%A" "%%A"
if errorlevel 0 (
"C:\Program Files\7-Zip\cmdline\7za.exe" a -tzip -mx9 "C:\temp\Zip\%%A.zip" "C:\temp\%%A"
Move "C:\temp\%%A" "C:\Temp\Archive"
)
在上面,即使REN命令失败,IF总是会评估为true。
想法是检查文件是否未被任何其他应用程序锁定,如果没有,则将其归档并将其移动到其他位置。
如何做到最好?
谢谢。
答案 0 :(得分:5)
在命令行上键入help if
以获取有关错误级别处理的一些信息。
您的代码存在的问题是,对于任何等于或大于IF ERRORLEVEL N
N
的计算结果为true
通常只有ERRORLEVEL 0表示成功,任何其他(更大)值表示某些错误。要简单地检查,如果还没有发生错误,请将检查反转为:
IF NOT ERRORLEVEL 1 (
REM your code here
)
或作为替代方案,退出脚本:
IF ERRORLEVEL 1 EXIT /B
答案 1 :(得分:-1)
你也可以制作一个rem.bat,它会让错误级别调用类似这样的错误:ERRORLEVEL == 300调用rem.bat,或者你可以通过使用0级别来解锁每个错误级别。你可以varrie关于事情不仅会使应用程序运行更加平稳,而且它会使你的风扇速度保持不变,因为错误级别将使用更多的CPU使用。
答案 2 :(得分:-1)
REN是内部命令,不设置ERRORLEVEL(我正在寻找相同的答案here)