PC Users' Guide Forums > DOS/V&Windowsコマンド・プロンプト・リファレンス >SET - 環境変数の設定と表示 dos/vコマンド・リファレンス
TOP | ジャンル別一覧 | アルファベット順索引 掲示板[コマンド・プロンプト活用相談] | 参考書  
http://fpcu.on.coocan.jp : PC Users' Guide Forums (FPCU)
サイト内/WEBを検索:
Web fpcu.on.coocan.jp
【連携サイト】東京エキストラNOTES:全国エキストラ募集情報が集結。
DOS/Windowsコマンド・リファレンス | Q&A PC用語 PC史 書籍情報
SONY VAIO ブラウザ(Firefox,Opera.). イエローページ 製品情報-2005 |-2003
PC-DIY Forum PC自作なんでも相談室 フリートーク PCパーツ里親募集
FPCUのPCユーザー交流スペースは新コミュニティ「folomy」内にあります。
質問、交流などお気軽にどうぞ(参加無料)…FPCU会議室TOP | VAIO | FPCDIY
<THUROUGHOUT>このコマンドは、歴代のDOS/Windows(95系/NT系)全般で利用できます。
※Windows95/98/MeとWindowsNT/2000/XP/Vista系とではサポートされている機能に差がある場合もありますのでご留意ください。

SET - 環境変数の設定と表示

重要度 所在 ネットワーク オンラインヘルプ モード
内部 日英

《機能の説明》

DOSの環境変数を表示、設定、または削除します。

関連するBBS過去ログ……SET, PATH, %環境変数%

《書式》

SET [変数=[文字列]]

※WindowsNT,2000,XPのコマンド・プロンプト(CMD.EXEコマンド・プロンプト)では機能が拡張されており、下記のような複数の書式があります。拡張部分についてはこのページ末尾で説明します。

SET [変数=[文字列]]
SET 検索用文字列
SET /A 式
SET /P 変数=[プロンプト文字列]

<トップ> <凡例>
<ジャンル別INDEX> <50音順INDEX>
掲示板[DOSプロンプト活用相談]
<FPCU TOP>

《スイッチ/パラメーター》

なし
現在されている環境変数とその内容をすべて表示します。
変数
追加または変更したい変数名を指定します。
※変数名に「=」記号を含めることはできません。
※DOS/Windows95系では、変数名のアルファベットに小文字を使っても大文字に変換して記憶されます。WindowsNT系では指定した通りに記憶されますが、実用上は区別されません。
※WindowsNT系では「/A」「/P」などはスイッチとして使用するため、これらで始まる環境変数名は定義できません。
文字列
指定した変数に対応させたい文字列を指定します。省略すると、その環境変数は変数名、文字列ともにクリアされます。
※使用できる文字種に制限はないようですが、 = や半角スペースなどが混在する文字列を指定した場合、変数名と内容(文字列)の区別がまぎらわしくなる場合があります。
※WindowsNT系(CMD.EXE)では、パラメーター全体を引用符号 (")で囲むことによって、 | < > & ( ) など、コマンド・プロンプト上で特殊な意味を持つ文字列を安全に内容に含めることができます。
例  SET "TEST=A>B"
 またはエスケープ文字 (^) を用いる方法もあります。
例  SET TEST=^>    ( > が記憶されます)
COMMAND.COMにはこれらの機能はありません。

《解説》

《関連コマンド》

バッチファイルの制御用コマンド
SHELL トップ・レベルのコマンド処理プログラムの設定
COMMAND コマンド処理プログラムの始動
PATH プログラム検索パスの設定
PROMPT コマンド・プロンプトの表示設定
DIR ファイル一覧の表示



《WindowsNT系での拡張機能》

SET 検索用文字列
 パラメータなしの SET コマンドの拡張機能です。
 たとえば「Aで始まる名前の環境変数とその設定内容の一覧を見たい」という場合、
  SET A
 のように指定することで、該当する環境変数と内容がリストされます。
 指定可能なパラメータは1文字に限定されていませんので、下記の例のように、より絞り込んで結果を得ることも可能です。

  SET APP

 むろん、実在する一意の環境変数名を指定した場合は、その環境変数と設定内容が表示されます。

  SET APPDATA

 指定した文字列に該当する環境変数がみつからない場合は、
  環境変数 Z が定義されていません
 のようなエラーメッセージが表示され、ERRORLEVEL 1が返ります。
SET /A 式
 等号の右側の文字列を式として取り扱います。下記の文字が操作/演算子として使用されます。

() グループ化
* / % 算術演算子
※%は「剰余」を算出します。
+ - 算術演算子
<< >> 論理シフト
& ビット演算子 AND
^ ビット演算子 排他的OR(XOR)
| ビット演算子 OR
= *= /= %= += -= &= ^= |= <<= >>= 代入
, 式の区切り記号

 コマンドラインから SET /A を実行すると、式の演算結果の最終的な値が表示されます。
例 SET /A 1+1
  実行結果……2
 すなわち、コマンド・プロンプト上での簡易電卓として利用できます。

 演算の結果を環境変数に割り当てるには、一般のSETコマンドと同様、左辺に代入先の環境変数を指定します。

例 SET /A RESULT1=(4+8)/2
例 SET /A RESULT2=255/2

例 SET /A RESULT3=RESULT1 * RESULT2
 上の例のように、式には「既存の環境変数」が直接記述でき、それらの環境変数が保持している値が参照されます。つまり、本来であれば各環境変数の前後に必要な % 記号の入力が省略できます。
 なお、未定義の環境変数を参照した場合は、0として扱われます。

例 SET /A "RESULT4=128^255"
例 SET /A "256>>1"
 上の例のように、論理演算子を使用する際は引用符が必要になります。指定しないと予期しない結果が返ったり、リダイレクト符号として扱われてしまうため、注意が必要です。

 数値は、デフォルトでは10進数として扱われますが、接頭辞として0xをつけると16進数、0をつけると8進数となります。

例 SET /A 0x10
  実行結果 16
例 SET /A 016
  実行結果  14
SET /P 変数=[プロンプト文字列]
 [プロンプト文字列]に指定した文字列を画面に表示した状態でユーザーの1行分のキー入力を待ち、その値を環境変数に割り当てます。
例 SET /P ANSWER=あなたのお名前は? :
 [プロンプト文字列]の指定を省略した場合は、何も表示せずにユーザーのキー入力を待ちます。
 ユーザーが何も入力せずに改行キーを押した場合、次のようになります。
 ・まだ存在しない環境変数だった場合、その環境変数は定義されません。
 ・既存の環境変数である場合、その環境変数の値は変更されません。
 従って、バッチ処理でこの機能を使用する場合、
 ・あらかじめ初期値を設定しておく
 ・SET /P実行後、環境変数の内容が変化したかどうかを検査する。
 ……といった手順で使用することをおすすめします。

環境変数内容を参照する際の拡張機能
(1)文字列の置換…… %環境変数:文字列1=文字列2%
 指定した環境変数に記憶されている文字列中の「文字列1」部分をすべて「文字列2」に置換した上で参照します。

@echo off
set temp=this is a pen.
echo %temp:pen=cat%
実行結果 this is a cat.
 文字列2を省略した場合には、文字列1に該当する部分が削除されます。
(2)部分参照…… %環境変数:~[-]開始オフセット[,[-]長さ]%
 この書式を用いることで、環境変数文字列内の位置を指定し、その部分だけを抜き出すことができます。
[-]オフセット
 環境変数文字列の先頭からのオフセット(距離)で、参照開始位置を指定します。1文字めなら0、10文字めなら9となります。
 マイナス記号を指定した場合は「環境変数全体の長さ - オフセット」に相当する値が使われます。つまり「後ろから数えて0バイトから取り出すか」の指定になります。
[-]長さ
 取り出す文字列の長さを指定します。省略した場合は、文字列の最後までが指定されたのと同じ扱いになります。
  - を指定した場合、「環境変数全体の長さ - オフセット」に相当する値が使用されます。つまり「後ろから数えて0バイトまでを取り出すか」の指定になります。

<トップ> <凡例>
<ジャンル別INDEX> <50音順INDEX>
掲示板[DOSプロンプト活用相談]
<FPCU TOP>

DOSVCMD! SET!

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、この下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=