想要抑制文件未找到输出

use*_*140 5 windows batch-file

我有一个脚本,用于搜索特定文件夹中格式为"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%
Run Code Online (Sandbox Code Playgroud)

我不希望这个"找不到文件"输出.如何禁止显示"找不到文件"输出?如果那里没有文件,那么我想要空白输出.

怎么做到这一点?

mih*_*dis 8

只需将'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%
Run Code Online (Sandbox Code Playgroud)

但是,如果要计算名称中包含特定字符的文件:

@echo off 
echo Files number:
Dir "C:\Users\BOX\*2014*" /-C/S/A:-D 2^>nul | find /C /V ""
Run Code Online (Sandbox Code Playgroud)


npo*_*aka 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
Run Code Online (Sandbox Code Playgroud)