2

DOS コマンドで特定のディレクトリ内のファイルの数を見つけてほしい (このディレクトリの下のサブディレクトリの数には、個別のエントリが必要です)。

たとえば、Tech がディレクトリで、2 つのファイルと 2 つのサブディレクトリ (Info Tech、Services) があり、サブディレクトリにそれぞれ 2 つのファイルがある場合、結果は次のようになります。

Tech 6
Info Tech 2
Services 2

誰かがそのようなコマンドラインで私を助けることができれば素晴らしいでしょう...

4

1 に答える 1

5

あなたの要件は明確ではありません。

フォルダーごとに、サブフォルダー内のファイルを含むフォルダー内のファイルの総数が必要であると想定しています (再帰的)。ルート フォルダーとすべてのサブフォルダー (再帰的) に対してその計算を実行する必要があります。

このコードは、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
于 2012-05-22T15:58:10.253 に答える