想要抑制文件未找到的输出提示

9

我有一个脚本可以在特定文件夹中查找文件名格式为“abc2014.txt”的文件。然后我会计算这样的文件数量,它们的名称中包含*2014。但如果找不到该文件,则命令提示符会输出“未找到文件”。

我的脚本如下:

@echo off
SetLocal enabledelayedexpansion
for /F "tokens=1" %%a IN ('Dir "C:\Users\BOX\*2014*"  /-C/S/A:-D') Do Set q=!n2! & Set n2=%%a
echo %q%

我不想看到“文件未找到”的输出。我该如何阻止这个“文件未找到”的输出?如果那里没有文件,那么我希望有一个空白的输出。
如何实现这一点?

那么,你尝试过什么了吗? - starsplusplus
你的脚本具体是做什么的? - Menelaos
2个回答

11

只需将“dir”命令的标准错误(2)重定向到nul即可。

@echo off 
SetLocal enabledelayedexpansion 
for /F "tokens=1" %%a IN ('Dir "C:\Users\BOX\*2014*" /-C/S/A:-D 2^>nul') Do Set q=!n2! & Set n2=%%a echo %q%

但是如果你想要计算文件名中包含特定字符的文件数量:

@echo off 
echo Files number:
Dir "C:\Users\BOX\*2014*" /-C/S/A:-D 2^>nul | find /C /V ""

3
setlocal enableDelayedExpansion
for /F "tokens=1" %%a IN ('Dir "C:\Users\BOX\*2014*" /-C/S/A:-D  2^>nul') Do (
 Set q=!n2! 
 Set n2=%%a echo %q%
)
endlocal

1
这将会移除所有输出,包括DIR文本。 :) - foxidrive

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接