gpt4 book ai didi

batch-file - 无法从批处理脚本中失败的 MOVE 命令获取错误级别

转载 作者:行者123 更新时间:2023-12-04 11:07:50 29 4
gpt4 key购买 nike

我是这个论坛的新手,所以我首先要感谢你在我成为成员(member)之前就为我提供了解决方案 :)。

所以我有这个代码:

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%
)

问题是我无法获得不同于 0 的错误级别。即使要复制的文件从位置丢失,我仍然收到成功存档的消息。我在论坛上搜索了类似的问题,但由于某种原因我无法让它工作。
复制和 ping 命令之间有什么不同吗(ping 命令在错误级别返回正确的退出代码),因为我无法通过复制或移动来获取它...

谢谢!
安德鲁

最佳答案

IF ERRORLEVEL 语句的奇怪之处在于它的行为不像您期望的那样 - 如果错误级别等于 ,它返回 TRUE。或大于 指定的数量。
MOVE 中的失败将 errorlevel 设置为大于 0 的 1(我刚刚检查过)。因此将始终使用 IF 语句中的第一个子句。修复脚本的最简单方法是反转 IF 语句中的条件:

if ERRORLEVEL 1 (echo file was not archived) else (echo file was successfully archived)

关于batch-file - 无法从批处理脚本中失败的 MOVE 命令获取错误级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19168536/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com