7

我正在寻找一个批处理文件,当给定一个路径时,它将计算其中的所有文件夹和子文件夹。到目前为止,我只能收集路径第一级内的文件夹数量。然后,我将它通过管道传输到一个文本文件。

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

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

我快要得到我想要的了吗?我需要做什么?

谢谢!

4

3 回答 3

7

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

for /f %%a in ('dir /b /s /ad %folder%^|find /c /v "" ') do set count=%%a
echo %count% folder(s^)>> !output!
于 2013-10-31T14:55:41.863 回答
0

这是我解决问题的方法。

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

首先我们检查一个文件是否存在,如果存在,删除它。然后我们得到一个文件列表并将其转储到我们的文件中。然后在文件上运行 FIND。FIND 会很方便地给我们一个大标签,所以文件名也可以是吸引人且易于阅读的名称。

我个人对特定的文件类型感兴趣,所以我更改了. 变成 *.jpg 但原理是一样的。

于 2015-01-19T21:44:29.820 回答
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
于 2013-10-31T15:03:53.567 回答