希望有人可以帮助我。我有一个文件夹,其中包含许多子文件夹 - 例如:
Business Chemistry DT English
这些文件夹中的每一个都有许多子文件夹。
我想要做的是运行批处理文件,然后输出如下内容:
Business: 24 Chemistry: 542 DT: 298 English: 101
我有一个命令行命令,当在子文件夹中运行时,返回该文件夹和子文件夹中的文件数,但这是一个非常费力的过程,必须运行50次以上的命令。
答案 0 :(得分:0)
试试这个批处理文件:
@echo off
(
FOR /D %%G in ("*") DO (
PUSHD "%%G"
FOR /F "delims=" %%H in ('dir /a-d /b * ^|find /C /V ""') DO echo %%G : %%H
POPD
)
)>"..\count.txt"
Start "" "..\count.txt"
答案 1 :(得分:0)
This should work for you, (and should be relatively quick for larger directories):
@Echo Off
SetLocal EnableDelayedExpansion
(Set selDir=C:\Users\Robert\Subjects)
For /D %%A In ("%selDir%\*") Do Call :Sub "%%A"
Timeout -1 1>Nul
Exit/B
:Sub
Set i=3
For /F "EOL=- Tokens=1-3" %%A In (
'RoboCopy /L /E /NFL /NDL /NJH %1 null *.*') Do (
If %%B==: (Set/A i-=1
If !i! Equ 1 Echo(%~nx1 : %%C))
Just make sure you change the path within the parentheses on line four to suit your parent directory.
答案 2 :(得分:0)
假设您的目录位于D:\root\
,以下计算每个目录的直接子目录:
@echo off
for /D %%R in ("D:\root\*") do (
set "NAME=%%~nxR"
set /A "COUNT=0"
for /D %%D in ("%%~fR\*") do (
set /A "COUNT+=1"
)
setlocal EnableDelayedExpansion
echo(!NAME!: !COUNT!
endlocal
)