[ホーム] - [バッチファイル サンプル一覧] - [ファイル名を引数として処理するサンプルコード]

ファイル名を引数として処理するサンプルコード | Windows バッチファイル






Windowsのバッチファイルにおいて、指定したフォルダ内のファイル名を引数としてループ処理するサンプルプログラムを紹介します。
for 文により現在のフォルダのファイルの一覧を取得することが可能です。


・ファイル内で%を記載する場合は%%と記載します。 ・先頭に@を付けることでコマンドそのものは画面に出力しません。

サンプルコード集

以下は Windows 10 環境におけるサンプルコードと実行結果です。


c:\testdirに移動してから for 文によりファイルの一覧を順番に取得しています。
このサンプルでは do echo %%iによりそれぞれのファイル名を処理していますが、ここをカスタマイズしてファイル処理を行うことができます。


サンプルコード:


@cd c:\testdir
@for %%i in (*) do echo %%i



実行結果:


c:\testdir>echo test001.txt
test001.txt

c:\testdir>echo test002.txt
test002.txt

c:\testdir>echo test003.txt
test003.txt




以下の例では c:\temp 内の拡張子が txt であるファイルの一覧をループ処理しています。

サンプルコード:


@for %%i in (c:\temp\*.txt) do @echo %%i


実行結果:

c:\temp\0.txt
c:\temp\1.txt




/r オプションによりサブディレクトリも対象に含まることが可能です。c:\testdir\subdir というサブディレクトリも対象にしていることが分かります。


サンプルコード:


@cd c:\testdir
@for /r %%i in (*.*) do echo %%i


実行結果:


c:\testdir>echo c:\testdir\test001.txt
c:\testdir\test001.txt

c:\testdir>echo c:\testdir\test002.txt
c:\testdir\test002.txt

c:\testdir>echo c:\testdir\test003.txt
c:\testdir\test003.txt

c:\testdir>echo c:\testdir\subdir\test999.txt
c:\testdir\subdir\test999.txt




"for の使い方が誤っています。" と表示される場合は文法に誤りがある可能性があります。
以下は間違った例です。


サンプルコード:


rem 間違ったサンプル、in が抜けている。
@for /r %%i  (*.*) do echo %%i

rem 間違ったサンプル、引数名が指定されていない
@for /r in (*.*) do echo %i


実行結果:


(*.*) の使い方が誤っています。




以下は各ファイルに対して複数コマンドを実行しているサンプルです。括弧内に複数の処理を追記することが可能です。

サンプルコード:


@cd c:\testdir
@for /r %%i in (*.*) do (
@echo %%i
@echo "-------"
@echo %%i)



実行結果:


c:\testdir>(



)
c:\testdir\test001.txt
"-------"
c:\testdir\test001.txt

c:\testdir>(



)
c:\testdir\test002.txt
"-------"
c:\testdir\test002.txt

c:\testdir>(



)
c:\testdir\test003.txt
"-------"
c:\testdir\test003.txt

c:\testdir>(



)
c:\testdir\subdir\test999.txt
"-------"
c:\testdir\subdir\test999.txt








本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。)

[ホーム] - [バッチファイル サンプル一覧]