【バッチファイル】指定したフォルダ配下のファイル数を取得する

バッチファイルで
 ・指定したフォルダ配下の
 ・ファイル数を取得
できます!

コード

ここでは例として、
 ・デスクトップにあるフォルダ「test」配下の
 ・ファイル数を取得
します。

フォルダ「test」
フォルダ「test」
フォルダ「test」配下には3ファイルある
フォルダ「test」配下には3ファイルある
@echo off

rem 対象フォルダ
set targetFolder=C:\Users\user\Desktop\test

rem フォルダの存在有無を確認
if not exist %targetFolder% (
    echo 対象フォルダが存在しないため、処理を終了します。
    echo.
    pause
    exit
) 

rem ファイル数を取得するコマンドを作成
set cmd="dir %targetFolder% /a-d /b | find /c /v """

rem ファイル数を取得するコマンドを実行し、結果を変数「fileCount」へ格納
for /f %%a in ('%cmd%') do (
    set fileCount=%%a
)

rem 結果
echo ファイル数:%fileCount%

echo.
pause
exit

「対象フォルダ」を指定します(4行目)。

「対象フォルダ」が存在しない場合は、処理を終了します(7~12行目)。

「ファイル数を取得するコマンド」を作成します(15行目)。
「dir」コマンドと「find」コマンドにより、ファイル数を取得します。
※「dir」コマンドのオプション「/ad」により、フォルダを対象にします。」が「not」を示します。
※「dir」コマンドのオプション「/b」により、「dir」コマンドの結果から余計な情報を除きます。
※「|」等をエスケープしなくてもいいように、コマンドを「”(ダブルコーテーション)」で囲みます。

「ファイル数を取得コマンド」を実行し、結果を変数「fileCount」へ格納します(18~20行目)。
※コマンドの結果を取得するために、forを使用します。
※実行するコマンドを「’」で囲みます。
※for文を使用しないとコマンドの結果を取得できないのは、バッチファイルのイマイチな点と思います。

※for文は本来繰り返し処理をするために使用するものです。

実行結果

バッチファイルで
 ・指定したフォルダ配下の
 ・ファイル数を取得
できました。
※フォルダ「test」配下のファイル数は3であることを確認できました。

実行結果
実行結果

参考

上記で使用した以下の詳細は、公式サイトをご確認ください。

「dir」コマンド


「find」コマンド


「for」コマンド

タイトルとURLをコピーしました