環境変数(MS-DOSTips 1)
あまり普段扱うことは少ないのですが、MS-DOS コマンドプロンプトからの環境変数の操作を覚えておくと意外と便利です。
HELP SET で機能の一覧を見ることができますが、細かい点について、記述されてなくて困ったので、少し補足して まとめてみました。
* SET コマンド
UNIXでもおなじみのコマンドですが、実行するとすべての環境変数が表示されます。
パラメータを指定すると、その文字列で始まる環境変数がすべて表示されます。
* SET 変数名=
変数を空にします。
* SET 変数名1=%変数名2%
変数1に変数2を代入します
*SET /A 変数名=式
変数に評価した式の内容を代入します
使用できる演算には
() - グループ化 * / % + - - 算術演算子 << >> - 論理シフト & - ビット演算子 AND ^ - ビット演算子排他的 OR | - ビット演算子 OR = - 単純代入 *= /= %= += -= - 算術代入 &= ^= |= - ビット演算代入 <<= >>= - シフト代入 |
があります。
ここで注意しなくてはいけないのは | や < や >がコマンドプロンプトでは特殊な意味を持つので、そのまま使用できないということです。
SET ABC = 5 + 4 は正常に動作しますが、
SET ABC = 5 << 4 や SET ABC = 120 | 7 は動作しません。
SET "ABC = 5 << 4" や SET ABC = "120 | 7" とすればOKです。
* 特殊な環境変数
%ERRORLEVEL% … 現在の ERRORLEVEL の値
%CD% … 現在のディレクトリ文字列
%DATE% … 現在の日付フォーマット(注意:OSによって若干フォーマットに違いがあります)
%TIME% … 現在の時刻フォーマット
%RANDOM% … 0 から 32767 の間の10進数
%CMDEXTVERSION% … 現在のコマンド プロセッサ拡張機能のバージョン番号。
%CMDCMDLINE% … コマンド プロセッサを起動したオリジナル コマンドラインのパス。
%0 %1 %2 %3... … コマンドラインで与えられたパラメータ SHIFT /n コマンドで 値を n 番目からのパラメータへシフトすることが可能(デフォルトは 0)
* 複数の式を記述する
/A を指定しつつ、","で式を区切ると、複数の式を同時に指定できます。
例) set /a ABC = 1 * 5 , DEF=2
* 環境変数の置換
%変数名:文字列1=文字列2%
変数の文字列1を文字列2で置換します。
文字列2が空白ならば、指定文字列を削除できます。
* 環境変数の取り出し
%変数名:~オフセット,文字数%
変数のオフセットから指定文字数取り出すことができます。
例)
SET TEST=0123456789
ECHO %TEST:~3,4%
3456
%変数名:~文字数%
変数のオフセットから文字を全て取り出せます。
例)
SET TEST=0123456789
ECHO %TEST:~4%
456789
%変数名:~-文字数%
変数の後ろから指定文字数取り出せます。
例)
SET TEST=0123456789
ECHO %TEST:~-4%
6789
%変数名:~オフセット,-文字数%
変数のオフセットから後ろの指定文字数を取り除いた文字列を取り出すことができます。
SET TEST=0123456789
ECHO %TEST:~3,-4%
345
Comments