使用批处理文件计算文件夹和子文件夹

时间:2013-10-31 14:50:15

标签: batch-file cmd

我希望创建一个批处理文件,当给定路径时,它将计算其中的所有文件夹和子文件夹。到目前为止,我只能收集路径第一级内的文件夹数量。然后我将它传输到一个文本文件。

这是我到目前为止所拥有的:

for /f %%a in ('dir /b /ad %folder%^|find /c /v "" ') do set count=%%a
echo %count% folder(s^)>> !output!

我接近得到我想要的东西吗?我需要做些什么?

谢谢!

3 个答案:

答案 0 :(得分:5)

添加/s以包含所有子文件夹:

for /f %%a in ('dir /b /s /ad %folder%^|find /c /v "" ') do set count=%%a
echo %count% folder(s^)>> !output!

答案 1 :(得分:0)

此答案的小编辑:Batch file to list files and folders in a simple format

@echo off
setlocal disableDelayedExpansion
pushd %1
set "tab=    "
set "indent="
call :listFolder >report.txt
exit /b

:listFolder
setlocal
set "indent=%indent%%tab%"
for /d %%F in (*) do (
  echo %indent%.\%%F
  pushd "%%F"
  call :listFolder
  popd
)
exit /b

答案 2 :(得分:0)

以下是我解决问题的方法。

if exist "File Count" del "File Count"
dir "%~d1%~p1\*.*" /b /s >> "File Count"
find /c "." "File Count"

首先我们检查文件是否存在,如果存在,则删除它。然后我们得到一个文件列表并将其转储到我们的文件中。然后在文件上运行FIND。 FIND会轻松地给我们一个大标签,因此该文件的名称也可能具有吸引力和人类可读性。

我个人对特定文件类型感兴趣,所以我将更改为* .jpg,但原理是相同的。