バッチファイルには、制御文を使ってプログラムの流れを制御することができます。
これにより、より複雑で柔軟なスクリプトを作成することが可能です。
ここでは、基本的な制御文である for文 について説明します。
目次
for文の基本構文と使い方
for文は、繰り返し処理を実行するための制御文です。 基本構文は以下の通りです。
%%variable
にはループ変数を、set
には処理対象の集合を、command
には実行するコマンドを指定します。
例として、指定されたディレクトリ内のすべてのファイル名を表示するスクリプトを見てみましょう。
for %%f in (*.*) do echo %%f
このスクリプトでは、現在のディレクトリ内のすべてのファイル名を表示します。
for文を使ったループ処理の例
for文を使うと、より複雑な繰り返し処理を実装できます。
例えば、特定の拡張子のファイルを一括で処理するスクリプトを作成します。
for %%f in (*.txt) do (
echo %%f を処理しています...
type %%f
)
このスクリプトでは、現在のディレクトリ内のすべての.txt
ファイルを対象に、ファイル名を表示し、その内容を表示します。
サンプルコード:for文
if文とfor文を使った簡単なスクリプトの例
if文とfor文を組み合わせて、ファイルの存在をチェックし、存在するファイルを処理するスクリプトを作成します。
for %%f in (*.txt) do (
if exist %%f (
echo %%f が存在します。
) else (
echo %%f は存在しません。
)
)
このスクリプトでは、現在のディレクトリ内のすべての.txt
ファイルについて、ファイルが存在するかどうかをチェックし、結果を表示します。
複雑なループ処理の実装例
for文を使って、複数のディレクトリ内のファイルを一括で処理するスクリプトを作成します。
for /D %%d in (C:\data\*) do (
echo %%d 内のファイルを処理しています...
for %%f in (%%d\*.txt) do (
echo %%f を処理しています...
REM ここにファイル処理の内容を記述
)
)
このスクリプトでは、C:\data\
ディレクトリ内のすべてのサブディレクトリを対象に、その中にあるすべての.txt
ファイルを処理します。
複数のループを組み合わせることで、複雑な処理を簡単に実装できます。