Categories: Windows

バッチファイルで配列を扱う方法

Windowsのバッチファイルには本格的なプログラミング言語のような配列の機能はありませんが、変数名に工夫を加えることで、配列のように扱うことができます。

この記事では、バッチファイルで配列のように変数を扱う方法を紹介します。

バッチファイルで疑似的に配列を扱うスクリプト

バッチファイルでは、変数名に[](角括弧)を使って添え字を付けることで、配列のように複数の値を管理することができます。

@echo off
setlocal ENABLEDELAYEDEXPANSION

set a[0]=first
set a[1]=second
set a[2]=third

for %%i in (0 1 2) do (
    echo !a[%%i]!
)

pause

スクリプトの解説

  • @echo off: コマンドの実行結果を画面に表示しないようにします。
  • setlocal ENABLEDELAYEDEXPANSION: 遅延展開を有効にします。これは、forループ内で変数の値が変化する場合に、正しい値を取得するために必要です。
  • set a[0]=first: 変数aに添え字を付けて、配列のように要素を定義しています。
  • for %%i in (0 1 2) do (…): forループを使って、添え字iを0から2まで変化させながら、do内の処理を繰り返します。
  • echo !a[%%i]!: 遅延展開を使って、a配列の各要素を出力します。
  • pause: コマンドプロンプトのウィンドウを閉じないようにします。

実行結果

以下のように、配列に入力した値がechoでコンソールに表示されます。

遅延展開の必要性

setlocal ENABLEDELAYEDEXPANSIONというコマンドは、FORループ内で変数の値が変化する場合に、正しい値を取得するために必要です。このコマンドがないと、変数の値が最初に設定された値のままになってしまいます。

まとめ

バッチファイルで配列を扱う方法は、本格的なプログラミング言語と比べると制限がありますが、簡単なスクリプトを書く上では十分な機能を提供します。

変数名に工夫を加え、FORコマンドと組み合わせることで、様々な処理を行うことができます。

Haruoka