如果显示“拒绝访问”错误,则执行命令/代码

时间:2015-08-11 01:20:08

标签: windows batch-file

如果显示“拒绝访问”错误,我将如何执行命令?

类似这样的事情

del file 
if access denied goto :1
:1

2 个答案:

答案 0 :(得分:1)

最简单的方法是查看文件是否仍然存在:

del file 
if exist file goto :1

如果具体只想检测"访问被拒绝"而不是其他错误,您可以将错误保存到文件,如下所示:

del file 2>error.txt
findstr /c:"Access denied" error.txt && goto :1

(该代码尚未经过测试)

答案 1 :(得分:0)

不幸的是,DEL命令将返回0 DEL,无论删除是否因任何原因成功或失败。但是,如果启用ErrorlevelFOR /F命令将显示已删除文件的列表。因此,使用@ECHO OFF SETLOCAL enableextensions set "sOutput=" set "sFPFile=%cd%\file.txt" :: Full Path to File for /f "delims=" %%G in ('del "%sFPFile%" 2^>^&1') do set "sOutput=%%G" if /I "%sOutput%"=="%sFPFile%" ( echo Deleted file: "%sOutput%" ) else ( echo An error occured: "%sOutput%" rem could be "Access is denied." rem or "Could Not Find ..." rem or another error displayed ) Command Extensions,下一个代码段应该用于单个文件

%sFPFile%

如果btn包含通配符,则应该稍微改进一下。