批处理文件以在其他使用 IF、ELSE 和 ERRORLEVEL 失败的情况下执行命令
Batch file to execute a command in case of failure of other using IF, ELSE and ERRORLEVEL
所以基本上我正在尝试制作一个批处理文件,它执行一个命令并在成功执行该命令后退出。但如果它无法执行第一个命令,它应该 运行 第二个(备份)命令然后退出。
例如,我想要一个.bat 文件,在启动时删除某个目录中的文件,然后退出。但是如果尝试这样做时出现错误,它应该尝试删除不同目录中的另一个文件然后退出。
这么说吧,我创建了一个从当前目录中删除 "a.txt" 并退出的批处理文件。但如果失败,它应该尝试删除 "b.txt" 并退出。但它应该删除 b.txt 只有当它无法删除 a.txt.
我想利用 IF、ELSE 和 %ERRORLEVEL% 这样做。
这是我现在尝试使用的代码:
@echo off
del a.txt
IF %ERRORLEVEL% NEQ 0 (
del b.txt
) else (
ECHO victory
)
在上面的代码中,我使用了错误级别代码 0,如果它不等于 0(成功执行命令时返回),则执行计划 b。
现在它不会删除 b.txt.
请帮助我创建一个稳定且可用的...
提前致谢
DEL
returns 对于不存在的文件错误级别为 0,所以首先检查文件是否存在:
if exist a.txt (del a.txt & echo victory) else if exist b.txt del b.txt
如果无法删除文件,del
不会 return 错误级别。
在 Win 中测试8.x 32 位
检测结果del command is not so easy
dbenham 的解决方案形成上面的 link:
3>&2 2>&1 1>&3 del "a.txt"|findstr . && (
echo DEL failed
del "b.txt"
color
)||(
echo DEL succeeded
)
@echo off
del a.txt
IF EXIST a.txt (
del b.txt
) else (
ECHO victory
)
所以基本上我正在尝试制作一个批处理文件,它执行一个命令并在成功执行该命令后退出。但如果它无法执行第一个命令,它应该 运行 第二个(备份)命令然后退出。
例如,我想要一个.bat 文件,在启动时删除某个目录中的文件,然后退出。但是如果尝试这样做时出现错误,它应该尝试删除不同目录中的另一个文件然后退出。
这么说吧,我创建了一个从当前目录中删除 "a.txt" 并退出的批处理文件。但如果失败,它应该尝试删除 "b.txt" 并退出。但它应该删除 b.txt 只有当它无法删除 a.txt.
我想利用 IF、ELSE 和 %ERRORLEVEL% 这样做。
这是我现在尝试使用的代码:
@echo off
del a.txt
IF %ERRORLEVEL% NEQ 0 (
del b.txt
) else (
ECHO victory
)
在上面的代码中,我使用了错误级别代码 0,如果它不等于 0(成功执行命令时返回),则执行计划 b。 现在它不会删除 b.txt.
请帮助我创建一个稳定且可用的...
提前致谢
DEL
returns 对于不存在的文件错误级别为 0,所以首先检查文件是否存在:
if exist a.txt (del a.txt & echo victory) else if exist b.txt del b.txt
del
不会 return 错误级别。
在 Win 中测试8.x 32 位
检测结果del command is not so easy dbenham 的解决方案形成上面的 link:
3>&2 2>&1 1>&3 del "a.txt"|findstr . && (
echo DEL failed
del "b.txt"
color
)||(
echo DEL succeeded
)
@echo off
del a.txt
IF EXIST a.txt (
del b.txt
) else (
ECHO victory
)