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

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

PR

コード

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

フォルダ「test」
フォルダ「test」
フォルダ「test」配下にはフォルダが5つある
フォルダ「test」配下にはフォルダが5つある
@echo off

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

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

rem フォルダ数を取得するコマンドを作成
set cmd="dir %targetFolder% /ad /b | find /c /v """

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

rem 結果
echo フォルダ数:%folderCount%

echo.
pause
exit

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

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

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

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

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

PR

実行結果

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

実行結果
PR

参考①

ファイル数の取得もできます。

詳細は以下の記事をご確認ください。

PR

参考②

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

「dir」コマンド


「find」コマンド


「for」コマンド