我有一个通过SQL server代理调用的批处理文件。
目前我有:
ForFiles /p "C:\folder\subfolder" /d -7 /c "cmd /c del @file"如果存在一个超过7天的文件,则该命令可以正常工作。
如果没有满足条件的文件,则脚本将失败,从而导致SQL报告失败。
理想情况下,我需要添加和if语句,如果存在一个超过7天的文件,则执行delete命令,否则忽略它。
有什么建议吗?
发布于 2019-03-26 00:23:38
试试这个:
cd /d C:\folder\subfolder
SET _CmdResult=NONE
FOR /F "tokens=*" %%a IN ('forfiles -p "C:\folder\subfolder" -s -m *.* -d -7 -c "cmd /c del @file" 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它检查错误,并将错误放入一个变量中,如果发现,则将errorlevel设置为零。
发布于 2019-03-26 00:18:01
将其封装在FOR /F命令中,将标准错误重定向到NUL。
FOR /F "delims=" %%G IN ('forfiles /P "C:\folder\subfolder" /d -7 2^>nul') do DEL "%%~G"https://stackoverflow.com/questions/55341423
复制相似问题