如何使用批处理脚本和多个文件夹中的子文件(例如服务器上的主文件夹)计算文件数

时间:2014-11-01 18:27:14

标签: windows batch-file count

在一个示例中,使用它来提供完全保留的文件数,包括主目录列表中每个用户区域的所有子文件夹。我找到了将文件结构读入txt文件的方法。

user1有20个文件分布在他家乡的几个子目录中。我对子文件夹和文件计数的实际列表不感兴趣,我已经看到了答案,但由于我缺乏知识,我无法修改脚本 所以在这个例子中 - 主目录有99个用户,从user1到user99,每个用户都有各种子文件夹等

可以将如下输出提供到.txt文件中,该文件可以放入电子表格中。

Username # number of files
user1 # 20
user2 # 34
user3 # 93
user99 # 4

等等 - 双行间距纯粹是为了在一行上得到每个结果输出,我似乎无法用这个编辑器。

2 个答案:

答案 0 :(得分:0)

试试这个

@echo off
cls
setlocal EnableDelayedExpansion
set "cmd=dir user1 /s /b | find /C ":""

for /f %%a in ('!cmd!') do set number=%%a
echo user1 # %number%

答案 1 :(得分:0)

使用FOR /D迭代根文件夹中的用户。我将使用" C:\ USERS \"作为根。注意:您可能需要在具有管理员权限的控制台中运行。

对于每个用户,使用DIR管道传输到FIND来计算文件数。 DIR /A-D选项仅列出文件,包括隐藏文件和系统文件。 /B选项仅列出文件,没有任何标题或摘要信息。 /S选项包括子目录。 FIND /C选项会对匹配进行计数,/V ""是一个与所有行匹配的奇怪功能。

从命令行:

for /d %U in (*) do @for /f %C in ('dir /s /b /a-d "%U"^|find /c /v ""') do @echo %U # %C

使用批处理脚本

@echo off
for /d %%U in (*) do for /f %%C in ('dir /s /b /a-d "%%U"^|find /c /v ""') do echo %%U # %%C