我希望创建一个批处理文件,当给定路径时,它将计算其中的所有文件夹和子文件夹。到目前为止,我只能收集路径第一级内的文件夹数量。然后我将它传输到一个文本文件。
这是我到目前为止所拥有的:
for /f %%a in ('dir /b /ad %folder%^|find /c /v "" ') do set count=%%a
echo %count% folder(s^)>> !output!
我接近得到我想要的东西吗?我需要做些什么?
谢谢!
答案 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,但原理是相同的。