導入
自分で作らなくても、Windows があらかじめ用意してくれている変数があります。これを 環境変数 と呼びます。ユーザー名や一時フォルダの場所などが入っていて、どの PC でも同じ書き方で取り出せるので、汎用的なバッチを書くのに役立ちます。
説明
使い方は自分で作った変数と同じで、%名前% で取り出します。よく使うものを挙げます。
%USERNAME%… ログインしているユーザー名%USERPROFILE%… そのユーザーのホームフォルダ(例C:\Users\たろう)%TEMP%… 一時ファイル置き場%DATE%… 今日の日付、%TIME%… 現在時刻%CD%… 今いるフォルダ(カレントディレクトリ)%PATH%… コマンドを探しに行くフォルダの一覧
@echo off
echo こんにちは、%USERNAME% さん
echo あなたのホーム: %USERPROFILE%
echo 今日は %DATE% です
echo 一時フォルダ: %TEMP%
環境変数を使うと、ユーザーごとに違うパスをハードコーディングせずに書けます。例えば「デスクトップにフォルダを作る」なら %USERPROFILE%\Desktop を使えば、どのユーザーが実行しても正しい場所を指します。
@echo off
mkdir "%USERPROFILE%\Desktop\新規プロジェクト"
echo デスクトップにフォルダを作りました
パスに空白が含まれることがあるので、環境変数でパスを組むときは ダブルクオートで囲む のが安全です。
一覧を見るには コマンドプロンプトで
set(引数なし)と打つと、今使える環境変数がすべて一覧表示されます。どんな変数があるか眺めてみると発見があります。
やってみよう
%USERNAME% と %DATE% を使って「〇〇さん、今日は△△です」とあいさつするバッチを書いてみましょう。自分の PC の情報が変数から取り出せるのが実感できます。