あなたの要件は明確ではありません。
フォルダーごとに、サブフォルダー内のファイルを含むフォルダー内のファイルの総数が必要であると想定しています (再帰的)。ルート フォルダーとすべてのサブフォルダー (再帰的) に対してその計算を実行する必要があります。
このコードは、XP 以降のすべてのバージョンの Windows で機能します。真の MS-DOS で動作するかどうかはわかりません。本当に MS-DOS を使っていますか?
@echo off
setlocal disableDelayedExpansion
if "%~1"=="" (call :recurse ".") else call :recurse %1
exit /b
:recurse
setlocal
set fileCnt=0
for /d %%D in ("%~1\*") do call :recurse "%%~fD"
for /f %%A in ('dir /b /a-d "%~1\*" 2^>nul ^| find /v /c ""') do set /a fileCnt+=%%A
echo "%~f1" %fileCnt%
(
endlocal
set /a fileCnt+=%fileCnt%
)
exit /b
このコードは、フォルダーをファイル数とともに下から順にリストします。フォルダーを上から下にリストしたい場合は、結果を並べ替えるだけです。バッチ スクリプトの名前が fileCnt.bat であると仮定すると、
fileCnt | sort