批处理Windows中存在,Rmdir和%errorlevel%

时间:2017-09-29 12:58:58

标签: windows batch-file cmd errorlevel rmdir

我不认为我的问题与batch: Exit code for "rd" is 0 on error as well重复,因为我已经尝试了答案中的所有内容,但没有帮助(正如您在下面的屏幕截图中看到的那样)。

假设我要删除包含文件的目录。但我不希望脚本在发生错误时继续执行。所以我试着:

ECHO 3. Deleting Client index folder which will be rebuilt if it actually exist...
rmdir /S /Q "XXX"
ECHO %ERRORLEVEL%
IF %ERRORLEVEL% NEQ 0 ECHO Failed to delete client index folder... & GOTO :End

但%ERRORLEVEL%变量始终等于0。 enter image description here

然后我在Stackoverflow上发现了类似的问题并将脚本更改为:

ECHO 3. Deleting Client index folder which will be rebuilt if it actually exist...
rmdir /S /Q "XXX" && echo OK || echo ERROR
ECHO %ERRORLEVEL%
IF %ERRORLEVEL% NEQ 0 ECHO Failed to delete client index folder... & GOTO :End

它运作良好! enter image description here

但问题是如果文件夹不存在(即已被删除),我希望脚本继续工作。通过该实现,它无法正常工作。 enter image description here

所以我改变了这样的脚本:

ECHO 3. Deleting Client index folder which will be rebuilt if it actually exist...
if exist "XXX" (rmdir /S /Q "%4_%5" && echo OK || echo ERROR)
ECHO %ERRORLEVEL%
IF %ERRORLEVEL% NEQ 0 ECHO Failed to delete client index folder... & GOTO :End

Aaaaaaa并在文件锁定的情况下再次停止设置%ErrorLevel%变量... enter image description here

我试图在“存在”状态后删除括号。试图将“if exist”更改为“2> nul”,但这些选项都不能正常工作。关于我应该如何解决它的任何建议?

0 个答案:

没有答案