バッチファイルはWindowsで一連のコマンドを自動実行するための強力なツールです。その中の基本的なコマンドのひとつがsetです。setコマンドは、変数の設定や変更に使用します。
この記事では、setコマンドの基本的な使用方法と注意点を紹介します。
変数の設定や変更(代入)
setコマンドを使用することにより、変数に値を割り当てることができます。
@echo off
set myVariable=Hello World
echo %myVariable%
pause
この例では、myVariableという変数にHello Worldという値を割り当て、echoコマンドでその値を表示しています。割り当てる値の途中には空白を含んでも問題ありません。
実行結果
Hello World
続行するには何かキーを押してください . . .
注意点
変数名と値の間のスペースに注意してください。変数を設定する際、等号(=)の前後にスペースを入れないように注意が必要です。スペースがあると、意図しない結果になることがあります。
間違った書き方1:等号(=)の前にスペースを入れた場合
この場合、変数名の末尾に不要なスペースが含まれることになります。バッチファイルではスペースを含む変数名を正しく認識できないため、このset命令は機能せず、echo %myVariable% はパラメータなしでechoコマンドを実行したことになります。
@echo off
set myVariable =HelloWorld
echo %myVariable%
pause
実行結果
ECHO は <OFF> です。
続行するには何かキーを押してください . . .
間違った書き方2:等号(=)の後にスペースを入れた場合
この場合、”HelloWorld”の前に不要なスペースが含まれることになります。echo %myvariable%を実行すると、出力には先頭にスペースが含まれる ” HelloWorld” が表示されます。
@echo off
set myVariable= HelloWorld
echo %myVariable%
pause
実行結果
HelloWorld
続行するには何かキーを押してください . . .
ユーザー入力の受け取り
set /p は、ユーザーからの入力を変数に保存する際に使用します。
@echo off
set /p userinput=あなたの名前を入力してください:
echo Hello, %userinput%!
pause
実行結果
あなたの名前を入力してください: うまてく
Hello, うまてく!
続行するには何かキーを押してください . . .
まとめ
本記事では、変数に値を割り当てるsetコマンドを紹介しました。setコマンドを使用する際は等号の前後にスペースを入れないことに注意してください。デバッグとしてsetコマンドの後にechoで変数の内容を確認すると、setコマンドの振る舞いを理解しやすくなると思いますのでご活用ください。