今回はBATの変数定義方法を紹介します。
変数と定数の違いは以下をご参照ください。

PowerShellと同じWindowsで扱うことのできる言語(厳密にはMS-DOS)ですが,PowerShellとは仕様が大きく異なります。
イツキ不慣れな内は,まずBATから扱う方が要領を掴みやすいかも!
細かな違いを理解する意味でも,参考にしていただけたら幸甚です。
定義方法
変数
定義方法は以下の通りです。
| # | 宣言 | 例 | 備考 |
|---|---|---|---|
| 1 | set (変数名)=(値) | set strTest=”test” | [型]は指定不要 「=」の前後にスペースを入れると,正しく代入できない |
例では「strTest」と名付けた変数に「test」を代入しています。
「echo」コマンドを使用することで,変数の値を出力することができます。
なお,変数を扱う際は,変数の前後に「%」を付ける必要があります。
|
1 2 3 |
>set strTest="test" >echo %strTest% "test" |



あれ,二重引用符(“)も出てくるんですね。



そうなんだよ。もし二重引用符(“)を設定したくなかったら,宣言の仕方を工夫する必要があるんだ。



PowerShellでは出てこなかったのに(汗)
もし二重引用符を設定したくない場合は,以下のように宣言すれば二重引用符を取り除くことが可能です。
| # | 宣言 | 例 | 備考 |
|---|---|---|---|
| 1 | set “(変数名)=(値)” | set “strTest=test” | (変数名)~(値)までを二重引用符で括る |
|
1 2 3 |
>set "strTest=test" >echo %strTest% test |
他にもやり方はいろいろとあるようですが,上記がおそらく最も簡単かと思います。
もしくは,二重引用符を使わないで宣言しても問題ありません。
ですが,個人的には,変数を宣言する際は二重引用符の使用をおすすめします。
二重引用符を取り除きたい場合は,(変数名)~(値)までを二重引用符で括ればOK!
定数
BATでは定数の宣言ができません。
定数として扱う意味で,全て大文字で名付ける(例:「STR_TEST」等)などして,変数と区別できるよう工夫しましょう。
BATでは定数を宣言できない。
まとめ
今回はBATの変数定義方法について説明しました。
変数・定数の宣言方法は言語によって様々であり,二重引用符の扱い等も異なっています。
混乱しないよう,少しずつ習熟を図っていきましょう。


