本文へスキップ
BecomeCoder

バッチファイルコース · 第3章 変数を使う · レッスン7

set で変数を作る ― 名前を付けて使い回す

導入

変数は「値を入れておく名前付きの箱」です。フォルダのパスや名前など、後で何度も使う値を1か所で管理でき、変更もそこだけ直せば済みます。

説明

作るときは set 名前=値、使うときは名前を % ではさんで %名前% と書きます。

@echo off
set name=たろう
set folder=C:\work\data

echo こんにちは、%name% さん
echo 作業フォルダは %folder% です

いちばん多いミスは = のまわりの空白 です。set name = たろう のように空白を入れると、変数名が name (末尾に空白)に、値が たろう(先頭に空白)になってしまいます。set 名前=値前後に空白を入れず ぴったりくっつけて書きましょう。

値に空白を含めたいときは、set "name=山田 太郎" のように 全体をダブルクオートで囲む のが安全です(クオートは変数の中身には入りません)。

@echo off
set "fullname=山田 太郎"
echo ようこそ、%fullname% さん

変数はそのバッチの中だけ set で作った変数は、そのバッチ(と、そこから呼んだ子バッチ)の中でだけ有効です。バッチが終われば消えるので、うっかり PC の設定を変えてしまう心配はありません。

やってみよう

set で自分の名前とお気に入りのフォルダを変数に入れ、echo で表示するバッチを書いてみましょう。= の前後に空白を入れないのがコツです。