首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >forfiles抑制No find文件不工作

forfiles抑制No find文件不工作
EN

Stack Overflow用户
提问于 2014-04-02 01:33:20
回答 2查看 3.4K关注 0票数 2

我正在使用forfiles显示超过300天的文本文件。如果我没有找到任何文件,forfiles会给出一个错误,所以我使用下面的代码来抑制这个错误,并返回如下输出:

代码语言:javascript
复制
A:"NONE"
success 

代码如下:

代码语言:javascript
复制
SETLOCAL ENABLEDELAYEDEXPANSION
SET res=NONE


for /f "tokens=*" %%a in ('forfiles /d -300 /p E:\Webex /m *.txt /c "cmd /c echo @file ^>^>log.txt" ^| findstr error' ) do set res=%%a
ECHO A:"!res!" >>log.txt 
if "!res!" == "ERROR: No files found with the specified search criteria." (
    ECHO B:"!res!" >>log.txt
    SET err_lv=0
) ELSE (
    SET err_lv=1
)

IF "!res!" == "NONE" SET err_lv=0

if !err_lv! equ 1 (
    ECHO failure >>log.txt
) else (
    ECHO success >>log.txt
)


pause
EN

回答 2

Stack Overflow用户

发布于 2014-04-02 03:03:53

要消除该错误消息,请在行尾添加一个2>nul

它将STDERR流2(标准错误)重定向到NU1。

代码语言:javascript
复制
forfiles /d -300 /p E:\Webex /m *.txt /c "cmd /c echo @file" 2>nul
票数 4
EN

Stack Overflow用户

发布于 2019-05-02 23:14:59

单独调用FORFILES /p E: /D -1 /C "cmd /c echo @path"2>nul仍然会增加错误级别,并导致代码失败。

我发现,为了不触发任何try/catch或其他错误处理,我需要从jenkinsfile (groovy脚本)调用此命令,对我有效的方法是添加一个不返回错误的简单echo语句。当然,这是我工作中最简单、最有效的解决方案。

代码语言:javascript
复制
bat '''
            FORFILES /p E: /D -1 /C "cmd /c echo @path"2>nul
            ECHO "It's okay if we don't find any files to delete."
'''
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22792868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档