当我运行递归目录搜索文件时,如果文件夹为空,则输出“找不到文件”,但回显%count%输出0应该是。
setlocal
set /a count=0
for /F %%N in ('dir/s/b/aa "folder\name\*.txt"^| find /c "::"') do set count=%%N
echo %count%
我想要的只是一个批处理文件,用于在目录中递归计算文本文件的数量,并输出结果,如999,如果文件夹为空,则显示0。我尝试了很多> nul和批量搜索脚本。我没有看过谷歌的链接了。
答案 0 :(得分:2)
for /F %%N in ('dir/s/b/a-d "folder\name\*.txt" 2^>nul ^| find /v /c ""') do set count=%%N
在^
之前应该有一个插入符号(>
)以逃避重定向器。
答案 1 :(得分:1)
File not found
被发送到标准错误流。您可以通过使用2>nul
重定向来沉默它:
for /F %%N in ('dir/s/b/aa "folder\name\*.txt" 2^>nul ^| find /v /c ""') do set count=%%N
答案 2 :(得分:1)
我知道这可能不是你在看什么,但你试过了吗?
dir/s/c folder\name\*.txt
我认为它几乎完全符合您的要求。