2015-09-07 27 views
1

所以基本上我试图做一个批处理文件,执行一个命令,并成功执行该命令退出。但是如果它执行第一个命令失败,它应该运行第二个(备份)命令,然后退出。批处理文件执行一个命令,如果其他使用IF,ELSE和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。

请帮我在创造一个稳定和工作的一个......提前

感谢

回答

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

DEL回报不存在的文件ERRORLEVEL 0,所以首先检查文件是否存在:

if exist a.txt (del a.txt & echo victory) else if exist b.txt del b.txt 
0

del如果无法删除文件,则不会返回错误级别。

在Win 8.x中32位在这里测试

0
@echo off 
del a.txt 
IF EXIST a.txt (
del b.txt 
) else (
ECHO victory 
) 
相关问题