use*_*129 7 batch-file exit-code errorlevel
我对这个论坛很新,所以我首先要感谢你在我成为会员之前为我提供解决方案:).
所以我有这个代码:
for %%a in ("%PBpath%") do (
move "network location 1 files" "network location 2" >NUL
if ERRORLEVEL 0 (echo Diagram %%~na.pdf was successfuly archived) else ( echo Diagram %%~na.pdf was not archived )
ECHO.%errorlevel%
)
Run Code Online (Sandbox Code Playgroud)
问题是我无法得到不同于0的错误级别.即使要从位置丢失要复制的文件,我仍然可以回显成功存档的消息.我在论坛上搜索了类似的问题,但由于某些原因我无法使其工作.copy和ping命令之间是否有不同之处(ping命令在errorlevel中返回正确的退出代码),因为我无法通过复制或移动来获取它...
谢谢!安德鲁
关于IF ERRORLEVEL语句的奇怪之处在于它不像你期望的那样 - 如果errorlevel等于OR GREATER而不是指定的数字,它返回TRUE .MOVE中的失败将errorlevel设置为1(我刚刚检查),该值大于0.因此将始终使用IF语句中的第一个子句.修复脚本的最简单方法是撤消IF语句中的条件:
if ERRORLEVEL 1 (echo file was not archived) else (echo file was successfully archived)
Run Code Online (Sandbox Code Playgroud)