コマンドラインからフォルダとサブフォルダ内のファイルを数える

コマンドラインからフォルダとサブフォルダ内のファイルを数える

指定されたフォルダー(およびオプションでサブフォルダー)内の特定のタイプ(例: *.mp3)のすべてのファイルをコマンドラインから環境変数にカウントするにはどうすればよいですか?

(PowerShell は使用せず、バッチ コマンドのみを使用してください)

答え1

set filesCount=0 & for %f in (*) do @(set /a filesCount+=1 > nul)

答え2

フォルダとサブフォルダ内のファイルを数える

次のコマンドを使用します。

dir /b *.mp3 /s 2> nul | find "" /v /c > tmp && set /p count=<tmp && del tmp && echo %count%

環境変数には%count%ファイルの数が含まれます。

注記:

  • /sサブフォルダー内のファイルをカウントしない場合は削除します。

例 (*.txt を使用)

17 個のファイルを表示するディレクトリ リスト:

F:\test>dir /b *.txt /s
F:\test\abc.txt
F:\test\blackwhite.txt
F:\test\cpu.txt
F:\test\interface.txt
F:\test\Lorem ipsum.txt
F:\test\right.txt
F:\test\rights.txt
F:\test\software.txt
F:\test\tabs.txt
F:\test\test.txt
F:\test\this is inside junction.txt
F:\test\unique.txt
F:\test\xyz.txt
F:\test\sub\abc.txt
F:\test\sub\xyz.txt
F:\test\sub with space\junction sub with space.txt
F:\test\sub with space\xyz.txt

次のコマンドを実行します:

F:\test>dir /b *.txt /s 2> nul | find "" /v /c > tmp && set /p count=<tmp && del tmp && echo %count%
17

参考文献

答え3

dirとの組み合わせを使用してfindファイルをカウントします。ループを介してファイルを変数に格納します。エラーを非表示にするにforは、エラー出力を にリダイレクトします。nulFile Not Found

@echo off
for /f %%i in ('dir *.xlsx /s /b 2^> nul ^| find "" /v /c') do set VAR=%%i
echo %VAR%

、、および/?に使用するパラメータの説明を参照してください。dirfindfor

答え4

robocopy の (list) オプションを利用できます/L。複雑な for ループやパイプは必要ありません。非常に高速です。

robocopy c:\mydir c:\dummy /L /E *.mp3 *.txt
  • c:\mydir: 検索したいディレクトリへのパスに置き換えます
  • c:\dummy: これはダミー引数なのでそのままにしておくことができます。これは、/L
  • /L: リストのみ、何もコピー/移動しません。
  • /E: サブディレクトリを再帰的に含めます。サブディレクトリを検索したくない場合は、これを削除できます。
  • ファイルとディレクトリのリストを印刷したくない場合は、/NFL(No Files List) および/または/NDL(No Dirs List)を追加できます。

以下のようなわかりやすいレポートが表示されます。Total列を見てください。

Source : c:\mydir

Files : *.mp3
        *.txt

--------------------------------------------------

{list of all the matching files}

--------------------------------------------------

            Total    Copied   Skipped  Mismatch    FAILED    Extras
 Dirs :         5         5         0         0         0         0
Files :        89        89         0         0         0         0
Bytes :   3.485 g   3.485 g         0         0         0         0

関連情報