所以基本上我试图制作批处理文件,执行命令并成功执行该命令退出。但是如果它无法执行第一个命令,它应该运行第二个(备份)命令,然后退出。
例如,我想要一个.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。
请帮助我创建一个稳定且有效的...
提前致谢
答案 0 :(得分:0)
DEL
为不存在的文件返回errorlevel 0,因此首先检查文件是否存在:
if exist a.txt (del a.txt & echo victory) else if exist b.txt del b.txt
答案 1 :(得分:0)
del
如果无法删除文件,则不会返回错误级别。
在Win 8.x 32位
中测试答案 2 :(得分:0)
检测del command is not so easy的结果 dbenham的解决方案构成了上面的链接:
3>&2 2>&1 1>&3 del "a.txt"|findstr . && (
echo DEL failed
del "b.txt"
color
)||(
echo DEL succeeded
)
答案 3 :(得分:0)
@echo off
del a.txt
IF EXIST a.txt (
del b.txt
) else (
ECHO victory
)