我正在寻找一个批处理文件,当给定一个路径时,它将计算其中的所有文件夹和子文件夹。到目前为止,我只能收集路径第一级内的文件夹数量。然后,我将它通过管道传输到一个文本文件。
这是我到目前为止所拥有的:
for /f %%a in ('dir /b /ad %folder%^|find /c /v "" ') do set count=%%a
echo %count% folder(s^)>> !output!
我快要得到我想要的了吗?我需要做什么?
谢谢!
我正在寻找一个批处理文件,当给定一个路径时,它将计算其中的所有文件夹和子文件夹。到目前为止,我只能收集路径第一级内的文件夹数量。然后,我将它通过管道传输到一个文本文件。
这是我到目前为止所拥有的:
for /f %%a in ('dir /b /ad %folder%^|find /c /v "" ') do set count=%%a
echo %count% folder(s^)>> !output!
我快要得到我想要的了吗?我需要做什么?
谢谢!
添加/s
以包括所有子文件夹:
for /f %%a in ('dir /b /s /ad %folder%^|find /c /v "" ') do set count=%%a
echo %count% folder(s^)>> !output!
这是我解决问题的方法。
if exist "File Count" del "File Count"
dir "%~d1%~p1\*.*" /b /s >> "File Count"
find /c "." "File Count"
首先我们检查一个文件是否存在,如果存在,删除它。然后我们得到一个文件列表并将其转储到我们的文件中。然后在文件上运行 FIND。FIND 会很方便地给我们一个大标签,所以文件名也可以是吸引人且易于阅读的名称。
我个人对特定的文件类型感兴趣,所以我更改了. 变成 *.jpg 但原理是一样的。
这个答案的一个小编辑:批处理文件以简单的格式列出文件和文件夹
@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