我想从文件夹中删除文件,如果没有要删除的文件,则应忽略错误并捕获所有其他错误。下面是我正在使用的代码。
FOR /F "tokens=*" %%a IN ('FORFILES /P "%%G" /D -3 /C "cmd /c DEL @path" 2^>^&1 ^| FINDSTR ERROR') DO SET _CmdResult=%%a
IF "%_CmdResult%" == "ERROR: No files found with the specified search criteria." (
SET errorlevel=0
) ELSE (
SET errorlevel=1
)
IF "%_CmdResult%" == "NONE" SET errorlevel=0
IF NOT %errorlevel% EQU 0 (
goto delete_fail )
以下是我在运行上述代码时在命令提示符下看到的内容。
FOR /F "tokens=*" %a IN ('FORFILES /P "%G" /D -2 /C "cmd /c DEL @path" | FINDSTR ERROR') DO SET _CmdResult=%a
IF "NONE" == "ERROR: No files found with the specified search criteria." <<<<< _CmdResult is still "NONE"
(
SET errorlevel=0
) ELSE (
SET errorlevel=1 )
IF "NONE" == "NONE" SET errorlevel=0
IF NOT 0 EQU 0 (goto delete_fail )
根据日志,我发现当没有要删除的文件时,错误字符串没有保存到 _CmdResult 中。谁能让我知道我错过了什么,