2013-10-31 118 views
5

我正在創建一個批處理文件,在給出通路時,它將計算其中的所有文件夾和子文件夾。到目前爲止,我只能收集路徑第一級中的文件夾數量。然後,我會將它傳遞給一個文本文件。使用批處理文件計算文件夾和子文件夾

這是我到目前爲止有:

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

上午我接近得到我想要什麼?我需要什麼才能馴服?

謝謝!

回答

5

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

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

謝謝!我簡單的大腦錯過了。我應該知道這將是簡單的事情! :) – Mark

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 
0

以下是我解決了這個問題。

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

首先我們檢查文件是否存在,如果存在,刪除它。然後我們得到一個文件列表並將其轉儲到我們的文件中。然後在文件上運行FIND。 FIND將輕鬆地給我們一個大的標籤,所以文件的名稱可能會有吸引力和人類可讀性。

我個人對特定的文件類型感興趣,所以我更改了分成* .jpg但原理是一樣的。

相關問題