バッチファイル | ドロップしたフォルダにあるファイルやフォルダをカウントするサンプルコード

バッチファイル サンプル集,コマンドプロンプト

バッチファイル | ドロップしたフォルダにあるファイルやフォルダをカウントするサンプルコード

バッチファイルにドロップしたフォルダにあるファイル数やフォルダ数をカウントして取得するサンプルコードを紹介しています。

ドロップしたフォルダにあるファイル、フォルダをカウントして取得する

ドロップしたフォルダにあるファイル、フォルダをカウントするには、まずドロップしたフォルダのパスを「%~1」で取得します。

「dir」コマンドを利用して、フォルダ内のファイルあるいはフォルダの数を取得していきます。

サンプルコードでは、直下のファイルやフォルダの数、サブフォルダを含むファイルやフォルダの数、拡張子を指定したファイルの数など、それぞれのパターンで取得しています。

@echo off
chcp 65001

rem ドロップしたフォルダーのパス
set "drop_folder_path=%~1"

for /f %%a in ('dir /a-d /b "%drop_folder_path%" 2^>nul ^| find /c /v ""') do (
    echo フォルダ直下のファイルの数:%%a
)

for /f %%a in ('dir /a-d /b "%drop_folder_path%" 2^>nul ^| findstr /i /r "\.txt$" ^| find /c /v ""') do (
    echo フォルダ直下のテキストファイルの数:%%a
)

for /f %%a in ('dir /a-d /b "%drop_folder_path%" 2^>nul ^| findstr /i /r "\.png$" ^| find /c /v ""') do (
    echo フォルダ直下のPNGファイルの数:%%a
)


for /f %%a in ('dir /ad /b "%drop_folder_path%" 2^>nul ^| find /c /v ""') do (
    echo フォルダ直下のフォルダの数:%%a
)

for /f %%a in ('dir /b "%drop_folder_path%" 2^>nul ^| find /c /v ""') do (
    echo フォルダ直下のフォルダとファイルの数:%%a
)

for /f %%a in ('dir /a-d /b /s "%drop_folder_path%" 2^>nul ^| find /c /v ""') do (
    echo サブフォルダ内も含むファイルの数:%%a
)

for /f %%a in ('dir /a-d /b /s "%drop_folder_path%" 2^>nul ^| findstr /i /r "\.txt$" ^| find /c /v ""') do (
    echo サブフォルダ内も含むテキストファイルの数:%%a
)


for /f %%a in ('dir /a-d /b /s "%drop_folder_path%" 2^>nul ^| findstr /i /r "\.png$" ^| find /c /v ""') do (
    echo サブフォルダ内も含むPNGファイルの数:%%a
)


for /f %%a in ('dir /ad /b /s "%drop_folder_path%" 2^>nul ^| find /c /v ""') do (
    echo サブフォルダ内も含むフォルダの数:%%a
)

for /f %%a in ('dir /b /s "%drop_folder_path%" 2^>nul ^| find /c /v ""') do (
    echo サブフォルダ内も含むフォルダとファイルの数:%%a
)

pause

上記、バッチファイルに特定のフォルダをドロップした際に以下の結果が得られ、正常なカウントである事を確認しています。

ドロップしたフォルダ内のファイルやフォルダをカウントした結果
ドロップしたフォルダ内のファイルやフォルダをカウントした結果