如果显示“拒绝访问”错误,我将如何执行命令?
类似这样的事情
del file
if access denied goto :1
:1
答案 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
,无论删除是否因任何原因成功或失败。但是,如果启用Errorlevel
,FOR /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
包含通配符,则应该稍微改进一下。