批处理文件递归搜索空文件夹中的“找不到文件”错误

时间:2014-01-13 05:35:06

标签: batch-file

当我运行递归目录搜索文件时,如果文件夹为空,则输出“找不到文件”,但回显%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和批量搜索脚本。我没有看过谷歌的链接了。

3 个答案:

答案 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

我认为它几乎完全符合您的要求。