在 FOR 循环中使用 FORFILES 并尝试覆盖错误

汤姆

我正在编写一个 for 循环来对 .xml 和 .psr 文件执行 forfiles 命令。目前,如果它找到一种文件类型而不是另一种文件类型,它将显示“错误:未找到具有指定搜索条件的文件”,但我希望错误说明未找到哪种文件类型。我在 for 循环中有一个 if 语句应该覆盖错误,但它不起作用。这是循环:

FOR %%G IN (.xml, .psr) DO (
    FORFILES /P "%xmlDir%" /M *%%G /D -%days% /C "CMD /C DEL @FILE"
    IF %ERRORLEVEL% NEQ 0 (
        ECHO No matches found for %%G files older than %days% days
    )
)

编辑:感谢您的回答。我的 for 循环现在按预期工作,最终看起来像这样:

FOR %%G IN (.xml, .psr) DO (
    FORFILES /P "%xmlDir%" /M *%%G /D -%days% /C "CMD /C DEL @FILE" >nul 2>nul
    IF ERRORLEVEL 1 (
        ECHO No %%G files %days% days old or older were found.
    ) ELSE (
        ECHO %%G files as old as %days% days or older have been deleted.
    )
)
麻古

标准delayed expansion错误 - 您需要调用 delayexpansion [数百篇关于此的 SO 文章 - 使用搜索功能] 以显示或使用在括号内的一系列指令(又名“代码块”)中更改的任何变量的运行时值.

IF %ERRORLEVEL% NEQ 0 (

是问题 -遇到errorlevel时由其值替换for

解决此问题的简单方法是使用常规errorlevel处理:

if errorlevel 1 (

IE。如果errorlevel是(1 或大于 1)

至于消息,请尝试2>nul将错误消息重定向到nul或使用

if exist "%xmldir%\%%G" (forfiles...
 ) else (echo no %%G files found)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在forfiles循环中调用时,ffmpeg覆盖输入文件

使用基类作为参数的方法覆盖错误

在for循环中使用Sklearn的LabelEncoder错误

forfiles循环内的if else条件

如何批量使用FORFILES的Searchmask?

尝试在 while 循环中使用 setTimeout() 延迟

在循环中使用时 zip 输出在错误的位置

在for eachrow循环中使用变量会导致错误

Lambda在for循环中使用时传递错误的参数

在循环中使用 setValue() 会返回“未捕获的错误”

循环中使用SQL查询的自动化错误

在循环中使用StreamWriter时出现“ Stream not Writable”错误

在循环中使用ffmpeg时出现奇怪的错误

在循环中使用getline()时出现分段错误

在 for 循环中使用 fprintf 会提供错误的值

尝试更新libpython3.6-stdlib导致覆盖错误

使用路径变量时 Forfiles 复制失败

批处理-Forfiles循环使用多种文件类型

JAVA数据覆盖错误

Guava缓存覆盖错误

尝试在Python循环中使用.csv文件填充嵌套字典

我正在尝试在循环中使用window.location.href

为什么当我尝试在 for 循环中使用 strcat() 时程序崩溃?

Forfiles命令语法错误怎么办?

在循环中使用模数会导致分段错误(核心转储)

在forvalues循环中使用local报告语法错误

此错误消息是否表示我可以在for循环中使用模式匹配?

for循环中的ZSH列表变量名会导致错误,但可以在BASH中使用

如何在没有警告/错误的循环中使用session_start()?