我有一个通过SQL Server代理调用的批处理文件。
目前,我有:
ForFiles /p "C:\folder\subfolder" /d -7 /c "cmd /c del @file"
如果文件早于7天,该命令将正常工作。
如果没有符合条件的文件,则脚本将失败,从而导致SQL报告失败。
理想情况下,我需要添加if语句,如果存在的文件早于7天,则执行delete命令,否则忽略它。
有指导吗?
答案 0 :(得分:1)
将其包装在xmle.Element("playlist").Elements("extrait")
.Select(ex => new Extrait
{
Artiste = ex.Element("artiste").Value,
Titre = ex.Element("titre").Value,
PointA = 0,
PointT = 0,
PointAT = 0,
JoueurA = ex.Element("JoueursAT").Elements("joueurAT").Select(jat => jat.Value).ToList(),
JoueurT = ex.Element("JoueursA").Elements("joueurA").Select(ja => ja.Value).ToList(),
JoueurAT = ex.Element("JoueursT").Elements("joueurT").Select(jt => jt.Value).ToList()
});
命令中,将标准错误重定向到NUL。
FOR /F
答案 1 :(得分:0)
尝试一下:
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
它会检查错误,并将错误放入变量中,然后如果发现错误级别,则将错误级别设置为零。