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

7
我希望您能够创建一个批处理文件,当给定一个路径时,它将计算其中所有文件夹和子文件夹的数量。目前,我只能收集到该路径第一层级别中文件夹的数量。然后,我将把结果输出到文本文件。
以下是我目前的代码:
for /f %%a in ('dir /b /ad %folder%^|find /c /v "" ') do set count=%%a
echo %count% folder(s^)>> !output!

我离我想要的东西近了吗?我需要调整什么吗?
谢谢!
3个回答

7
/s添加到路径中以包含所有子文件夹:
for /f %%a in ('dir /b /s /ad %folder%^|find /c /v "" ') do set count=%%a
echo %count% folder(s^)>> !output!

谢谢!我的脑子太简单了,错过了那个。我应该知道这是件简单的事情! :) - Mark

0

对这个答案进行小修改:批处理文件以简单格式列出文件和文件夹

@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

0

这是我解决问题的方法。

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

首先,我们检查文件是否存在,如果存在,则删除它。然后,我们获取文件列表并将其转储到我们的文件中。然后在文件上运行FIND。FIND将方便地给出一个大标签,因此文件名也可以是有吸引力且易于阅读的内容。

我个人对特定的文件类型感兴趣,因此我将“.”更改为“*.jpg”,但原则相同。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接