山本ワールド
Windowsプログラミング
アルゴリズム Vitual C++ 2008/2013によるWin32/Win64 APIレベルのプログラム 基礎 Vitual C++ 2008/2013によるAPIレベルのプログラム(32/64bit) Wix3でインストーラーを作る Visual C++ 2008 Standard Editonによるフォームアプリケーションのプログラム(32/64bit) Vitual C++ 2008 Standard EditonによるAPIレベルのプログラム(32/64bit) Windows 7対応 Visual C++ 2008 ExpressによるAPIレベルのプログラム Visual C++ 2005 ExpressによるAPIレベルのプログラム Visual C++ Versiosn 5 BORLAND C++ Windowsプログラム全般 Excel VBA その他for文(ファイル名・フォルダー名の取得)
概要
このページは、Windowsのバッチファイルのfor文でファイルまたはフォルダー名の検索について記述します。
指定フォルダー内のファイル名・フォルダー名の検索およびサブフォルダー内も含めて検索することができます。
コマンドの記述方法は以下の通りです。
変数名は英字で1文字でなければなりません。
/d /rは大文字・小文字どちらでも構いません。
指定フォルダー内のファイル名・フォルダー名の検索およびサブフォルダー内も含めて検索することができます。
コマンドの記述方法は以下の通りです。
対象 | コマンドの書式 |
---|---|
ファイル名の一覧 | for %%変数名 in (検索対象フォルダー名) do コマンド |
フォルダー名の一覧 | for /d %%変数名 in (検索対象フォルダー名) do コマンド |
サブフォルダーも含めてファイルの一覧 | for /r 検索対象フォルダー名 %%変数名 in (検索するファイル名) do コマンド |
サブフォルダーも含めてフォルダー名の一覧 | for /d /r 検索対象フォルダー名 %%変数名 in (検索対象フォルダー名) do コマンド |
/d /rは大文字・小文字どちらでも構いません。
動作環境
以下の環境で動作を確認しました。
Windows 8.1 Enterprise 64bit
Windows 7 EnterPrise Service Pack 1 64bit
Windows XP Professional Service Pack 3 32bit
Windows 2000 Professional Service Pack 4
Windows 8.1 Enterprise 64bit
Windows 7 EnterPrise Service Pack 1 64bit
Windows XP Professional Service Pack 3 32bit
Windows 2000 Professional Service Pack 4
ファイル名の一覧を取得
for %%変数名 in (検索対象ファイル名) do echo %%変数名
カレントフォルダーのファイル名をfor文により順番に変数Aに代入し、ファイル名とサイズ、属性を表示します。
カレントフォルダーのファイル名をfor文により順番に変数Aに代入し、ファイル名とサイズ、属性を表示します。
カレントフォルダーの状況
ドライブ D のボリューム ラベルは 12345 です ボリューム シリアル番号は 1234-5678 です D:¥bat¥for_files のディレクトリ 2016/01/11 20:26 <DIR> . 2016/01/11 20:26 <DIR> .. 2016/01/11 20:04 97 1.bat 2016/01/11 20:04 104 2.bat 2016/01/11 20:13 181 3.bat 2016/01/05 21:42 72 4.bat 2016/01/11 20:01 <DIR> tess 2016/01/11 20:00 <DIR> test1 2016/01/11 20:00 <DIR> test2
バッチファイル d:¥bat¥for_files¥1.bat
@echo off rem ファイル名の一覧を取得 for %%A in (*.*) do ( echo %%A %%~zA %%~aA ) pause
出力結果
D:¥bat¥for_files>1 1.bat 97 --a------ 2.bat 104 --a------ 3.bat 181 --a------ 4.bat 72 --a------ 続行するには何かキーを押してください . . .
フォルダー名の一覧を取得
for /d %%変数名 in (検索対象フォルダー名) do echo %%変数名
ファイル名の一覧の取得に/Dオプションをつけるとフォルダー名を検索ができます。
カレントフォルダーで先頭にtestが含まれるフォルダー名を順番に変数Aに代入し、ファイル名とサイズ、属性を表示します。
ファイル名の一覧の取得に/Dオプションをつけるとフォルダー名を検索ができます。
カレントフォルダーで先頭にtestが含まれるフォルダー名を順番に変数Aに代入し、ファイル名とサイズ、属性を表示します。
カレントフォルダーの状況
ドライブ D のボリューム ラベルは 12345 です ボリューム シリアル番号は 1234-5678 です D:¥bat¥for_files のディレクトリ 2016/01/11 20:26 <DIR> . 2016/01/11 20:26 <DIR> .. 2016/01/11 20:04 97 1.bat 2016/01/11 20:04 104 2.bat 2016/01/11 20:13 181 3.bat 2016/01/05 21:42 72 4.bat 2016/01/11 20:01 <DIR> tess 2016/01/11 20:00 <DIR> test1 2016/01/11 20:00 <DIR> test2
バッチファイル d:¥bat¥for_files¥2.bat
@@echo off rem フォルダー名の一覧を取得 for /D %%A in (test*) do ( echo %%A %%~zA %%~aA ) pause
出力結果
D:¥bat¥for_files>2 test1 0 d-------- test2 0 d-------- 続行するには何かキーを押してください . . .
フォルダーの中からサブフォルダーも含めてファイルの一覧を取得
for /r 検索対象フォルダー名 %%変数名 in (検索するファイル名) do echo %%変数名
環境変数ProgramFilesで示されるフォルダーよりサブフォルダーも含めてMSVCR*.DLLをfor文により順番に変数Aに代入し、ファイル名とサイズ、属性を表示します。
環境変数ProgramFilesで示されるフォルダーよりサブフォルダーも含めてMSVCR*.DLLをfor文により順番に変数Aに代入し、ファイル名とサイズ、属性を表示します。
バッチファイル d:¥bat¥for_files¥3.bat
@echo off rem 環境変数ProgramFilesで示されるフォルダーよりサブフォルダーも含めてMSVCR*.DLLを検索する for /r "%ProgramFiles%" %%A in (MSVCR*.DLL) do echo %%A %%~zA %%~aA pause
出力結果
C:¥Program Files¥Common Files¥Microsoft Shared¥IME14¥SHARED¥MSVCR90.DLL 626688 --a------ C:¥Program Files¥Common Files¥Microsoft Shared¥VSTO¥10.0¥msvcr90.dll 626688 --a------ C:¥Program Files¥Intel¥iCLS Client¥msvcr90.dll 641360 --a------ C:¥Program Files¥Intel¥Intel(R) Rapid Storage Technology¥Microsoft.VC90.CRT¥msvcr90.dll 655872 --a------ C:¥Program Files¥Logicool¥SetPointP¥msvcr110.dll 828872 --a------ C:¥Program Files¥Microsoft SQL Server Compact Edition¥v4.0¥Private¥amd64¥Microsoft.VC90.CRT¥msvcr90.dll 624448 --a------ C:¥Program Files¥Microsoft SQL Server Compact Edition¥v4.0¥Private¥x86¥Microsoft.VC90.CRT¥msvcr90.dll 653120 --a------ C:¥Program Files¥Oracle¥VirtualBox¥msvcr100.dll 836256 --a------ C:¥Program Files¥Oracle¥VirtualBox¥x86¥msvcr100.dll 836256 --a------ C:¥Program Files¥Trend Micro¥AMSP¥msvcr110.dll 849360 --a------ C:¥Program Files¥Trend Micro¥Titanium¥plugin¥Pt¥msvcr110.dll 849360 --a------ C:¥Program Files¥Trend Micro¥Titanium¥plugin¥Pt¥win32¥msvcr110.dll 875472 --a------ 続行するには何かキーを押してください . . .
フォルダーの中からサブフォルダーも含めてフォルダー名を取得
for /d /r 検索対象フォルダー名 %%変数名 in (検索対象フォルダー名) do echo %%変数名
環境変数ProgramFilesで示されるフォルダーの中からサブフォルダーも含めてlibという名称のフォルダーを検索する。
環境変数ProgramFilesで示されるフォルダーの中からサブフォルダーも含めてlibという名称のフォルダーを検索する。
バッチファイル d:¥bat¥for_files¥4.bat
@echo off for /d /r "%ProgramFiles%" %%A in (lib) do echo %%A pause
出力結果
C:¥Program Files¥lib C:¥Program Files¥Common Files¥Microsoft Shared¥lib C:¥Program Files¥Common Files¥Microsoft Shared¥DW¥lib C:¥Program Files¥Common Files¥Microsoft Shared¥Filters¥lib C:¥Program Files¥Common Files¥Microsoft Shared¥IME14¥lib C:¥Program Files¥Common Files¥Microsoft Shared¥IME14¥IMEJP¥lib C:¥Program Files¥Common Files¥Microsoft Shared¥IME14¥SHARED¥lib C:¥Program Files¥Common Files¥Microsoft Shared¥ink¥lib C:¥Program Files¥Common Files¥Microsoft Shared¥ink¥ar-SA¥lib C:¥Program Files¥Common Files¥System¥lib C:¥Program Files¥Common Files¥System¥ado¥lib C:¥Program Files¥Common Files¥System¥ado¥ja-JP¥lib C:¥Program Files¥Common Files¥System¥ja-JP¥lib C:¥Program Files¥Common Files¥System¥msadc¥lib C:¥Program Files¥Common Files¥System¥msadc¥ja-JP¥lib C:¥Program Files¥Common Files¥System¥Ole DB¥lib C:¥Program Files¥Common Files¥System¥Ole DB¥ja-JP¥lib 続行するには何かキーを押してください . . .
Copyright (C) 2012 山本ワールド All Rights Reserved.