SET = 環境変数を表示、設定、削除する。もしくは数値計算する - Windowsのコマンドプロンプト(bat,cmd)
○Windows XP
環境変数を表示、設定、削除します。また、数値計算する事も出来ます。o バッチファイルの実行時に、画面から値を入力する事も出来ます。
o 数値計算出来るのは整数値。負の数も扱う事が出来ます。
+ 数字の先頭に 0x や 0 を付けると、16進数や 8進数になります。
**** 書式
--------
set [ 環境変数名[=設定したい値] ]
もしくは
set /p 環境変数名=[入力を促すメッセージ]
もしくは
set /a 計算式 [, 計算式]
--------
o コマンド名やキーワードは、大文字小文字のどちらでも大丈夫です。
(個別説明)
--------
set [ 環境変数名[=設定したい値] ]
--------
o 環境変数名 = 環境変数に設定したい名前、もしくは確認したい名前です。
+ 環境変数名だけ指定すると、その名前で始まる名前の環境変数を表示します。
+ (例。set miku は、環境変数 MIKUSAN などの値も表示します。)
+ 通常使うのは、半角英数字と「_」(アンダーライン)辺りです。
+ 全角文字も使用出来ました。
+ 使用出来なかったのは、「=」「<」「>」
o =設定したい値 = 間に空白を入れずに書きます。(例。set MIKUSAN=NEGI)
+ = だけ書くと、環境変数を削除します。(例。set MIKUSAN=)
--------
set /p 環境変数名=[入力を促すメッセージ]
--------
o /p = 環境変数に設定する値を、次の行で入力してもらう時に使います。
o 入力を促すメッセージ = 入力欄の左に表示する文字列です。
+ = prompt コマンドとは異なり、$ から始まる特殊記号を使う事は出来ません。
--------
set /a 計算式 [, 計算式]
--------
o /a = 数値計算する事が出来ます。
+ 計算結果を、環境変数に代入する事も出来ます。
+ 計算出来るのは、符号付き 32ビット整数の範囲。-2147483648 から 2147483647 までの間です。
+ 実数(= 小数点付きの数)や虚数は、扱う事が出来ません。
o 計算式 = 整数計算出来ます。
+ 計算式に使う事の出来る記号は、下記の表の通りです。
+ Windowsコマンドでも使う記号を入れる時は、両端を「"」で括ります。
+ 常に「"」で括っても、大丈夫です。
+ 環境変数は「%」無しで使う事が出来ます。環境変数への代入も出来ます。
+ 「%」で括らない場合、右辺の環境変数が存在しない時は、0 と解釈してくれます。
+ 計算式の途中に、空白を入れる事が出来ます。
+ 数値以外の値を指定すると、0 として計算します。
+ 数字部分の先頭に 0x や 0 を付けると、16進数や 8進数として計算します。
+ 小数点以下は扱っていません。入力するとエラーになります。
o , (カンマ) = 計算式は、カンマを付けて、複数並べる事が出来ます。
+ (以下、Windows XP Service Pack 3 (32ビット版)の場合の動作です。)
+ Windowsコマンドで 1度に書く事の出来る文字数は、全部半角文字の場合、8190文字です。
+ 1つの SET /A コマンドで、少なくとも 934個の環境変数への代入が出来ました。
記号 | 意味 | 補足説明 |
---|---|---|
演算子 | ||
( と ) | 括弧 | |
+ | 加算 | |
- | 減算、もしくは負の符号 | |
* | 乗算 | |
/ | 除算 | 割った結果の整数部分を返します。 |
% | 余り | |
! | 否定 | a=0 の時 !a=1。aが0以外の時、!a=0 |
~ | 1の補数 a=0 の時 ~a= -1 | 記号はチルダ。Shiftキーを押しながら「0」キーの2つ右の「へ」 |
演算子その2。「"」が必須になるもの | ||
<< と >> | 論理シフト | "2<<1" = 4。"-2>>1" = -1。符号は変わりません。計算式全体を「"」で括ります。 |
& | ビット演算の AND = 論理積 | "5&3" = 1。計算式全体を「"」で括ります。 |
| | ビット演算の OR = 論理和 | "5|3" = 7。計算式全体を「"」で括ります。縦棒は、Shiftキーを押しながら、「0」キーの3つ右の「\」 |
^ | ビット演算の XOR = 排他的論理和 | "5^3" = 6。計算式全体を「"」で括ります。記号はハット。「0」キーの2つ右の「へ」 |
代入 | ||
= | 環境変数への代入 | |
+= | 加算して代入 | A+=3 は、Aに3を加えます。 |
-= | 減算して代入 | A-=3 は、Aから3を減じます。 |
*= | 乗算して代入 | A*=3 は、Aに3を乗じます。 |
/= | 除算して代入 | A/=3 は、Aを3で割った整数部分を Aに代入します |
%= | 除算した余りを代入 | A%=3 は、Aを3で割った余りを Aに代入します。 |
代入その2。「"」が必須になるもの | ||
&= | AND演算結果を代入 | "A&=3" は、A と 3 をAND演算した結果を Aに代入します。計算式全体を「"」で括ります。 |
|= | OR 演算結果を代入 | "A|=3" は、A と 3 をOR演算した結果を Aに代入します。計算式全体を「"」で括ります。左の縦棒は、Shiftキーを押しながら、「0」キーの3つ右の「\」 |
^= | XOR 演算結果を代入 | "A^=3" は、A と 3 をXOR演算した結果を Aに代入します。計算式全体を「"」で括ります。左の記号はハット。「0」キーの2つ右の「へ」 |
<<= | 左論理シフト結果を代入 | "A<<=3" は、A を 3つ左に論理シフトした結果を Aに代入します。計算式全体を「"」で括ります。 |
>>= | 右論理シフト結果を代入 | "A>>=3" は、A と 3つ右に論理シフトした結果を Aに代入します。計算式全体を「"」で括ります。 |
複数計算 | ||
, | カンマ = 式の区切り記号 | A=3+9,B=3-9 は、環境変数 Aと Bに、それぞれの計算結果を代入します。 |
**** 戻り値 ( ERRORLEVELの値。確認分のみ )
o (設定なし) = 成功。この時は、ERRORLEVELの値を更新しません。
+ 次の時も、成功扱いになります。
+ オーバーフロー発生(= 符号が逆転した状態です。)
+ 環境変数の名前誤り
+ 「=% の使い方が誤っています。」 = 環境変数の書き方が間違ってます。
+ 詳しくは「環境変数の使い方。置換と部分文字列」
o 1 = エラー。結果の表示不可
+ 「環境変数 MIKUSAN が定義されていません」 = 値を表示しようとしましたが、変数名が見つかりませんでした。
o 9167 = エラー。数値の後ろに文字
+ 「無効な数字です。数値定数は 10 進 (17 桁)、16 進 (0x11 桁)、または 8 進 (021 桁) です。」 = 数値の後ろに「数字や演算子」以外の文字が続いています。
o 9168 = エラー。オーバーフロー
+ 「無効な数字です。数値は 32 ビットで表記される数値です。」 = 計算できるのは、-2147483648 から 2147483647 までの間です。
o 9169 = エラー。0除算エラー
+ 「0 除算エラーです。」 = 割り算の時に、分母を0にしてはいけません。
**** 使用例
o MIKU から始まる名前の環境変数の有無を確認して
--------
set miku
--------
o 環境変数 MIKUSAN を設定します。削除する事も出来ます。
--------
set MIKUSAN=私は NEGI だよ
set MIKUSAN=
--------
o 計算結果を確認したり、環境変数 MIKUSAN に代入。
--------
set /a 3*9+3+9
set /a MIKUSAN=(3*9+3+9)*10+3
set /a MIKUSAN = 3 * 9 + 3 + 9
set /a MIKUSAN = MIKUSAN * 10 + 3
--------
+ 空白を入れて計算する事も出来ます。
+ 計算結果は、「39」「393」「39」「393」
+ 右辺の MIKUSAN は、%MIKUSAN% と書く事も出来ます。
+ でも、おすすめの書き方は MIKUSAN。変数 MIKUSAN が存在しない時、0 になります。
o 環境変数の値を、画面から入力してもらいます。
--------
set /p MIKUSAN=ミクさんに一言。
--------
o コマンド名やオプションや環境変数は、大文字小文字のどちらでも大丈夫です。
o 一番上の「set miku」は、MIKU から始まる名前の一覧表示です。
**** 機能
o 環境変数を表示、設定、削除します。
+ 環境変数の詳細は
+ 「環境変数の使い方。置換と部分文字列」
+ 「環境変数の生存期間について」
o 環境変数を設定する際に、数値計算する事も可能です。
+ 計算出来るのは、符号付き 32ビット整数の範囲。-2147483648 から 2147483647 までの間です。
+ (= Windows XP 32ビット版の場合)
+ 数字部分の先頭に 0x や 0 を付けると、16進数や 8進数として計算します。
+ 小数点以下は扱っていません。入力するとエラーになります。
+ オーバーフロー時の動作は「SET /A コマンドで数値計算出来る値の範囲(= 上限と下限)」
**** 確認したバージョン
o Windows XP Service Pack 3
==
関連ページ:
▼Windowsコマンド。制御文と環境変数(▼ABC順)
▼Windowsコマンド一覧(▼ABC順)
▼コマンドプロンプト画面
▼制作メモ
> SETLOCAL = バッチファイルの中でローカル環境変数の使用を開始する
ENDLOCAL = ローカル環境変数の使用を終了する
PATH = 実行可能ファイルを検索する場所を表示、設定する
(2011年7月19日削除。使用例に混じっていた PATH コマンドの使用例を削除)
(2011年2月19日変更。/aの使用例は%無しの方が適切。誤字などを訂正)