環境変数は、コンピュータ上で実行中のプロセスの動作に影響を与えることができる、ユーザー定義可能な値です。環境変数は、プロセスが実行される環境の一部です。たとえば、実行中のプロセスは、TEMP 環境変数の値を照会して、一時ファイルを保存するのに適した場所を見つけたり、HOME または USERPROFILE 変数を照会して、プロセスを実行しているユーザーが所有するディレクトリ構造を見つけたりすることができます。
これらは、1979 年にバージョン 7 Unixで現在の形で導入されたため、それ以降のLinuxやmacOSを含むすべてのUnix オペレーティング システムのフレーバーとバリアントに含まれています。1982年のPC DOS 2.0以降、 Microsoft WindowsやOS/2を含むすべての後続のMicrosoftオペレーティング システムにも機能として含まれていますが、構文、使用法、標準変数名は多少異なります。
デザイン
すべてのUnixおよびUnix 系システム、および Windows では、各プロセスに独自の環境変数のセットがあります。デフォルトでは、プロセスが作成されると、親プロセスの実行時環境の複製が継承されます。ただし、親が子を作成するときに明示的に変更した場合は除きます。API レベルでは、これらの変更は実行中との間で行う必要があります。あるいは、bashなどのコマンドシェルから、ユーザーはまたは 表記を使用して間接的に特定のコマンドを呼び出すことで、そのコマンド呼び出しの環境変数を変更できます。実行中のプログラムは、設定のために環境変数の値にアクセスできます。
forkexecenvENVIRONMENT_VARIABLE=VALUE <command>
シェル スクリプトとバッチ ファイルは、環境変数を使用してデータと設定を子プロセスに伝達します。また、環境変数は、後でシェル スクリプトで参照するための一時的な値を格納するためにも使用できます。ただし、Unix では、プロセス外に漏れることがないため、非エクスポート変数がこれに好まれます。
Unix では、スクリプトまたはコンパイルされたプログラムで変更された環境変数は、そのプロセスと、場合によっては子プロセスにのみ影響します。親プロセスおよび無関係なプロセスは影響を受けません。同様に、DOSCOMMAND.COMまたは Windows のバッチ ファイル内で変数の値を変更または削除すると、それぞれまたはが存在する間、変数が変更されますCMD.EXE。
Unix では、環境変数は通常、システム起動時にシステムinit 起動スクリプトによって初期化され、システム内の他のすべてのプロセスに継承されます。ユーザーは、使用しているコマンド シェルのプロファイル スクリプトで環境変数を拡張できます (実際に拡張することがよくあります)。Microsoft Windows では、各環境変数のデフォルト値はWindows レジストリに保存されるか、ファイルに設定されますAUTOEXEC.BAT。
Unixでは、setuidプログラムには呼び出し元によって選択された環境が与えられますが、呼び出し元とは異なる権限で実行されます。動的リンカーは通常、環境変数で指定された場所からコードをロードし$LD_LIBRARY_PATH、$LD_PRELOADプロセスの権限で実行します。setuid プログラムがこれを行うと、呼び出し元が任意のコードを実行して権限を悪用する可能性があるため、安全ではありません。このため、libc はsetuid プロセスの起動時にこれらの環境変数を設定解除します。setuid プログラムは通常、不明な環境変数を設定解除し、他の環境変数をチェックするか、適切な値に設定します。
一般的に、環境変数のコレクションは、キーと値の両方が文字列である連想配列として機能します。いずれかの文字列の文字の解釈は、システムによって異なります。リストなどのデータ構造を表す必要がある場合は、コロン (Unix および Unix 系で一般的) またはセミコロンで区切られたリスト (Windows および DOS で一般的) を使用するのが一般的です。
構文
変数はスクリプトとコマンド ラインの両方で使用できます。通常、変数名の前または前後に特殊記号を付けて参照します。
環境変数名はすべて大文字にするのが慣例です。プログラミング コードでは一般的に、これにより環境変数をコード内の他の種類の名前と区別できます。環境変数名は Unix 系オペレーティング システムでは大文字と小文字が区別されますが、DOS、OS/2、Windows では区別されません。
ユニックス
ほとんどの Unix および Unix ライクなコマンドライン シェル$では、環境変数の値は変数名の前に記号を
置くことによって取得されます。必要に応じて、名前を中括弧で囲むこともできます。
ユーザーのホーム ディレクトリを表示するには、次のように入力します。
$HOMEをエコーする
Unix および Unix ライクなシステムでは、環境変数の名前は大文字と小文字が区別されます。
このコマンドは、envすべての環境変数とその値を表示します。printenvまた、コマンドの唯一の引数として変数名を指定することで、単一の変数を印刷することもできます。
DOS、OS/2、Windows
DOS、OS/2、Windows のコマンドライン インタープリタ ( や など) ではCOMMAND.COM、CMD.EXE環境変数は%前後に記号を配置することによって取得されます。
DOS、OS/2、Windows のコマンドライン インタープリターおよびそのAPIでは、環境変数名の大文字と小文字は区別されません。
環境変数 には、ユーザーのホーム ディレクトリのHOMEDRIVEドライブ文字 (および末尾のコロン) が含まれ、 には、そのドライブ内のユーザーのホーム ディレクトリの完全なパスが含まれます。
:HOMEPATH
したがって、ホーム ドライブとパスを確認するには、ユーザーは次のように入力します。
ECHO %HOMEDRIVE%%HOMEPATH%
このコマンドSET(引数なし) は、すべての環境変数とその値を表示します。Windows NT以降では、setプレフィックスをコマンドの唯一の引数として指定することで、名前が特定のプレフィックスで始まるすべての変数を印刷することもできます。
Windows PowerShellでは、ユーザーは次のいずれかを入力できます。
echo $env:homedrive$env:homepath
書き込み出力 $env:homedrive$env:homepath "$env:homedrive$env:homepath
"
PowerShell では、環境変数名の大文字と小文字は区別されません。
次のコマンドは、すべての環境変数とその値を表示します。
子項目を取得する 環境:
課題: Unix
コマンドenvとコマンドはset環境変数を設定するために使用でき、多くの場合シェルに直接組み込まれます。
次のコマンドも使用できますが、多くの場合、特定のシェルに依存します。
変数=値 # (等号の前後にスペースを入れないでください)Bourneおよび関連シェル の export VARIABLE #
export VARIABLE = value # ksh、bash、および関連シェル の場合
setenv VARIABLE value # cshおよび関連シェル の場合
環境変数がどのように効果を発揮するかは、いくつかの単純な原則によって決まります。
環境変数は、それが設定されたプロセスに対してローカルです。2 つのシェル プロセスが生成され、一方のプロセスで環境変数の値が変更された場合、その変更はもう一方のプロセスでは認識されません。
子プロセスが作成されると、親プロセスからすべての環境変数とその値が継承されます。通常、プログラムが別のプログラムを呼び出す場合、最初にforkによって子プロセスが作成され、次に子は必要に応じて環境を調整し、最後に子は呼び出されるプログラムに置き換えられます。この手順により、呼び出し元プログラムは呼び出されるプログラムの環境を制御できるようになります。
Unix シェルでは、キーワードを使用せずに変数を割り当てることができますexport。この方法で定義された変数はコマンドによって表示されますsetが、シェルによってのみ保存され、他のすべてのプロセスには認識されないため、真の環境変数ではありませんprintenv。コマンドはそれらを表示せず、子プロセスはそれらを継承しません。
変数=値
プレフィックス構文は、現在のプロセスに影響を与えずに、子プロセスに「真の」環境変数をエクスポートします。[1]
変数=値プログラム名 [引数]
環境変数の永続性は、セッション全体またはシステム全体に及ぶ可能性があります。
unsetは、 UnixコマンドラインシェルのBourneシェルファミリ(sh、、など)とCシェルファミリ(csh、tcshなど)の両方で実装されてkshいる組み込みコマンドです。シェル変数を設定解除し、メモリとシェルのエクスポートされた環境から削除します。シェルの内部を直接操作するため、シェルの組み込みとして実装されています。 [2] [3]読み取り専用シェル変数を設定解除することはできません。読み取り専用変数を設定解除しようとすると、コマンドはエラーメッセージを出力し、ゼロ以外の終了コードを返します。
bashunset
割り当て: DOS、OS/2、および Windows
COMMAND.COMやなどの DOS、OS/2、Windows のコマンドライン インタープリタではCMD.EXE、SETコマンドは次の引数を使用して環境変数と値を割り当てるために使用されます。
変数の設定=値
環境変数は次のように削除されます:
変数を設定=
引数なしのコマンドSETは、すべての環境変数とその値を表示します。SET " "、ゼロ個以上のスペースには、内部変数も含まれます。 では、コマンドを使用してグローバルではないローカル変数を割り当て、環境を復元すること
CMD.EXEができます。SETLOCALENDLOCAL
スイッチを 使用して/?内部ドキュメントを表示するか、ビューア helpを使用します。
セット /?
ヘルプセット
SETLOCAL /?
ヘルプ SETLOCAL
PowerShell
では、割り当ては Unix に似た構文に従います。
$env:VARIABLE = "値"
例
環境変数の例は次のとおりです。
PATH: ディレクトリ パスのリスト。ユーザーが完全なパスを指定せずにコマンドを入力すると、このリストにコマンドにつながるパスが含まれているかどうかが確認されます。HOME( Unix ライク) およびUSERPROFILE( Microsoft Windows ): ユーザーのホーム ディレクトリがファイル システム内のどこにあるかを示します。HOME/{.AppName}( Unix ライクな) およびAPPDATA\{DeveloperName\AppName}(Microsoft Windows): アプリケーション設定の保存用。多くのアプリケーションは、USERPROFILEWindows でのアプリケーション設定に を誤って使用しています。は、USERPROFILEユーザーが などのパスを選択できるダイアログでのみ使用する必要があります。Documents/Pictures/Downloads/Musicプログラム的な目的では、APPDATA(複数のデバイス間で共有されるローミング アプリケーション設定)、LOCALAPPDATA(ローカル アプリケーション設定)、またはPROGRAMDATA(複数の OS ユーザー間で共有されるアプリケーション設定) を使用する必要があります。[4]TERM( Unix ライク): 使用されているコンピュータ端末または端末エミュレーターのタイプを指定します(例:vt100またはdumb)。PS1( Unix ライク): Bourne シェルとその亜種でプロンプトを表示する方法を指定します。MAIL( Unix ライク): ユーザーのメールが見つかる場所を示すために使用されます。TEMP: プロセスが一時ファイルを保存できる場所。
真の環境変数
ユニックス
$PATH- シェルが名前にスラッシュを含まないコマンドを検索するディレクトリのコロンで区切られたリストが含まれます (スラッシュを含むコマンドは実行するファイル名として解釈され、シェルはファイルを直接実行しようとします)。これは、DOS、OS/2、およびWindows
%PATH%変数と同等です。
$HOME- ユーザーのホーム ディレクトリの場所が含まれます。現在のユーザーのホーム ディレクトリは C 関数およびでも確認できます
getpwuidがgetuid、$HOMEさまざまなシェル スクリプト (およびその他のコンテキスト) で便宜上よく使用されます。環境変数を使用すると、ユーザーは別のディレクトリを指定することもできます。
$PWD- この変数は現在のディレクトリを指します。引数なしで呼び出された場合のコマンド pwd の出力に相当します。
$DISPLAY- X11プログラムがデフォルトで使用するディスプレイの識別子が含まれます。
$LD_LIBRARY_PATH- 動的リンカーを備えた多くの Unix システムでは、の後にプロセス イメージを構築するときに、他のディレクトリを検索する前に動的リンカーが共有オブジェクト
execを検索するディレクトリのコロンで区切られたリストが含まれます。
$LIBPATHまたは$SHLIB_PATH- 古い Unix バージョンで一般的に
$LD_LIBRARY_PATH使用される代替手段。
$LANG, $LC_ALL, $LC_...$LANGは、デフォルトのロケールに設定するために使用されます。たとえば、ロケール値が の場合pt_BR、言語は (ブラジルの) ポルトガル語に設定され、必要に応じてブラジルの慣習が使用されます。ローカリゼーションのさまざまな側面は、個々の$LC_-変数 ($LC_CTYPE、など) によって制御されます。を使用して、すべての側面に同じロケールを強制することができます。$LC_COLLATE$LC_DATE$LC_ALL
$TZ- タイムゾーンを参照します。タイムゾーン自体を指定するか、ファイル ( 内
/usr/share/zoneinfo)を参照するなど、いくつかの形式が可能です。
$BROWSER- コロンで区切られたユーザーのウェブブラウザ設定のリストを含み、ユーザーがURLのコンテンツを表示できるようにする必要があるプログラムで使用されます。リスト内のブラウザは最初から最後まで試行され、最初に成功したブラウザの後で停止します。この配置により、さまざまな環境でのフォールバック動作が可能になります。たとえば、X11環境ではグラフィカルブラウザ ( Firefoxなど) を使用できますが、コンソール環境ではターミナルベースのブラウザ ( Lynxなど) を使用できます。URL
%sを配置する場所を指定するトークンが存在する場合があります。そうでない場合は、ブラウザは URL を最初の引数として起動する必要があります。[5] [6] [7] [8] [9]
ドス
DOS では、マスター環境はプライマリ コマンド プロセッサによって提供され、最初にロードされたときに で定義された事前環境を継承します。そのサイズは、 160 [10]から 32767 [10]バイトの間でパラメータによって設定できます。子プロセスに継承されるローカル環境セグメントは、通常、保持するコンテンツのサイズまで縮小されます。一部のコマンド ライン プロセッサ ( 4DOSなど) では、セカンダリ シェルを起動するときに使用できる最小量の空き環境スペースを定義できます。[10]環境変数の内容は保存時に変更されませんが、その名前 (" " なし) は常に大文字に変換されます。ただし、 DR DOS 6.0以降[11] [12]のディレクティブで定義された事前環境変数は例外です ( DR-DOS 7.02以降では ("小文字の名前を許可する")の場合のみ)。[10] [13]原則として、MS-DOS 7.0以降では小文字の変数名()もサポートされていますが、ユーザーが定義する手段は提供されていません。小文字を含む環境変数名は、通常の環境変数と同様に環境に保存されますが、大文字の変数のみを想定して記述されているため、ほとんどのDOSソフトウェアには表示されません。[10] [11] [12]一部のコマンドプロセッサは、変数名の最大長を80文字に制限しています。[10]原則として環境セグメントのサイズによってのみ制限されますが、一部のDOSおよび16ビットWindowsプログラム[10] [nb 1]では、環境変数の内容が128文字を超えることは想定されていません。 DR-DOSは最大255文字の環境変数をサポートし、 4DOSは最大512文字の環境変数もサポートしています。 [10] MS-DOS 7.0以降では、 ( を介して)内部的に最大1024文字のコマンドラインをサポートするように設定できるため、環境変数にも少なくとも1024文字が含まれることが想定されます。DR-DOSの一部のバージョンでは、インストール後に環境を必要としないことが多いドライバに渡される環境を、または/オプション(ゼロ環境)、(ドライブの置換、例)および(環境をプログラムの上に再配置)を介して縮小または再配置し、ドライバの実際の常駐メモリフットプリントを最小限に抑えることができます。CONFIG.SYSCOMMAND /E:n%CONFIG.SYSSETSWITCHES=/L%windir%COMMAND.COMCOMMAND.COM/L:128..1024SETENVINSTALL[HIGH]LOADHIGH/Z/D[:loaddrive]B:TSR.COM/E[14] [13] [11] [15] [16] [17]
バッチモードでは、存在しない環境変数は長さゼロの文字列に置き換えられます。
標準環境変数または予約済み環境変数には次のものがあります。
%APPEND%(DOS 3.3 以降でサポート)- この変数には、ファイルを検索するディレクトリのセミコロンで区切られたリストが含まれています。これは通常、
APPEND /Eコマンドを使用して変更され、ディレクトリ名が大文字に変換されることも保証されます。一部の DOS ソフトウェアでは、名前が大文字で保存され、リストの長さが 121 [10]文字を超えないことが想定されているため、この変数は コマンドを使用して変更しないことをお勧めしますSET。スペースやその他の特殊文字を含む長いファイル名は、引用符 ( ) で囲んではなりません"。
%CONFIG%(MS-DOS 6.0およびPC DOS 6.1以降でサポートされ、 ROM-DOSでもサポートされている[18])- この変数は、現在選択されているブート構成のシンボリック名を保持します。これは、プライマリ コマンド プロセッサを起動する前に、DOS BIOS (
IO.SYS、など) によって、対応するディレクティブIBMBIO.COMで定義された名前に設定されます。その主な目的は、ブート時に選択されたオプションに応じて、および同様のバッチジョブでさらに特別なケースを許可することです。これは、などのディレクティブを使用することで、DR-DOS でエミュレートできます。CONFIG.SYSMENUITEMAUTOEXEC.BATCONFIG.SYSSETSET CONFIG=1
%CMDLINE%( 4DOSで導入され、 MS-DOS 7.0以降でもサポートされています)- この変数には、現在実行中のコマンド ラインの完全に展開されたテキストが含まれます。アプリケーションは、この変数を読み取ることで、長いコマンド ラインの使用を検出して取得できます。PSP (または関連する API 関数) を介してコマンド ライン引数を取得する従来の方法は126文字に制限されており、 FCB が展開されるかデフォルトのDTAが使用されると使用できなくなるためです。4DOS はより長いコマンド ラインをサポートしていますが、
COMMAND.COMデフォルトではプロンプトで最大 126 文字しかサポートしていません (/U:128..255コマンド ライン バッファのサイズを指定する で上書きしない限り)/L:128..1024。ただし、内部コマンド ラインは、fe 変数の展開によって長くなる可能性があります (内部バッファのサイズを指定する によって異なります)。PSP のコマンド ライン長バイトに加えて、PSP コマンド ラインは通常ASCII-13によって制限され、126 文字を超えるコマンド ラインは通常、位置 127 に ASCII-13 が挿入されて切り捨てられます[12]。ただし、これはすべてのシナリオで信頼できるわけではありません。[12] [注 2]変数は、後方互換性のため、および非再配置型の常駐終了プログラムをロードするときに環境のサイズを最小限に抑えるために、のように先頭に@-シンボルを付けて呼び出される外部コマンド@XCOPY ...では抑制されます。Windows Chicagoの一部のベータ版では、完全なコマンドラインではなく、126文字を超えるコマンドラインの残りの部分のみを保存していました。 [11] [12]%CMDLINE%
%COMSPEC%(DOS 2.0 以降でサポート)- この変数には、コマンド プロセッサへの完全な8.3パス(通常はまたは) が含まれます。長いファイル名を含めることはできませんが、DR-DOS ではファイルおよびディレクトリのパスワードを含めることができます。この変数は、プライマリ コマンド プロセッサによって、それ自体を指すように設定されます (通常はディレクティブ の設定を反映します) 。これにより、コマンド プロセッサの常駐部分は、より大きなプログラムの実行後にディスクから一時部分を再ロードできます。実行時に値を変更して構成の変更を反映できます。これにより、コマンド プロセッサは他の場所から自身を再ロードする必要が生じます。この変数は、セカンダリ シェルを起動するときにも使用されます。
C:\COMMAND.COMC:\DOS\COMMAND.COMCONFIG.SYSSHELL
%COPYCMD%(MS-DOS 6.2およびPC DOS 6.3以降でサポートされ、 ROM-DOSでもサポートされている[18])- ユーザーは、、、およびコマンド
/Yのデフォルトとしてスイッチ(クエリで「はい」と想定する)を指定できます。 のデフォルトは、コマンド ラインでスイッチを指定することで上書きできます。スイッチは、確認を求めることなく既存のファイルを置き換えるようにコマンドに指示します。COPYXCOPYMOVE/Y/-Y/Y
%DIRCMD%(MS-DOS 5.0およびPC DOS 5.0以降でサポートされ、 ROM-DOSでもサポートされている[18])- ユーザーは、
DIRファイル指定を含むコマンドのカスタマイズされたデフォルトパラメータを指定できます。 プリセットのデフォルトスイッチは、コマンドラインで否定スイッチを指定することで上書きできます。 たとえば、にスイッチ%DIRCMD%が含まれている場合、コマンドラインで/Wを使用して上書きできます。 これは、DOS Plusの環境変数[19]や、 DR-DOSのスイッチまたはスイッチを使用してのデフォルトスイッチを定義する機能に似ています。[11] は、 Novell DOS 7以降の外部/ Stackerコマンドでもサポートされています。[11]DIR /-W%$DIR%DIR/C/RCOMMAND.COM%DIRCMD%SDIR.COMDIR.COM
%LANG%( MS-DOS 7.0以降でサポート)- この変数は、多言語の問題でメッセージのロケールを切り替えるためにいくつかのツールによってサポートされています。
%LANGSPEC%( MS-DOS 7.0以降でサポート)- この変数は、多言語の問題でメッセージのロケールを切り替えるためにいくつかのツールによってサポートされています。
%NO_SEP%( PC DOS 6.3およびDR-DOS 7.07以降でサポートされています)- この変数は、さまざまなコマンドのメッセージ内の千単位区切りの表示を制御します。デフォルトでは千単位区切りが発行されますが、PC DOSでは
SET NO_SEP=ONまたはを指定することで抑制SET NO_SEP=1できます。DR-DOSではさらに、feのように表示されるシステムの千単位区切りを上書きできますSET NO_SEP=.。[10]
%PATH%(DOS 2.0 以降でサポート)- この変数には、コマンド インタープリタが実行可能ファイルを検索するディレクトリのセミコロンで区切られたリストが含まれます。Unix 変数と同等です(ただし、一部の DOS および Windows アプリケーションでは、Unix 系システムの
$PATHと同様に、データ ファイルの検索にこのリストを使用します)。この変数は通常、 (またはMS-DOS 6.0では) コマンドで変更されます。このコマンドでは、ディレクトリ名が大文字に変換されることも保証されます。一部の DOS ソフトウェアでは、名前が大文字で格納され、リストの長さが 123 [10]文字を超えないことが想定されているため、[注 1]、この変数は コマンドで変更しない方がよいでしょう。[10]スペースやその他の特殊文字を含む長いファイル名は、引用符 ( ) で囲んではなりません。デフォルトでは、現在のディレクトリが最初に検索されますが、 4DOSなどの一部のコマンド ライン プロセッサでは、この検索順序をオーバーライドするために、 " " ("現在のディレクトリ") もリストに含めることができます。一部の DOS プログラムは、この拡張機能と互換性がありません。[10]$LD_LIBRARY_PATHPATHPATH /ESET".
%TEMP%(そして%TMP%)- これらの変数には、一時ファイルを保存するディレクトリへのパスが含まれます。オペレーティング システム ツールは通常 のみを使用します
%TEMP%が、サードパーティのプログラムは も使用します%TMP%。通常、%TEMP%よりも優先されます%TMP%。
DR -DOSファミリは、以下を含む多数の追加の標準環境変数をサポートしています。
%BETA%- この変数には、セカンダリシェルの起動時の一部のバージョン( DR DOS 3.41を含む)で表示されるオプションのメッセージが含まれます。 [20]
COMMAND.COM
%DRDOSCFG%/%NWDOSCFG%/%OPENDOSCFG%- この変数には、およびコマンドや、、、、、 / 、、、、、、などのさまざまなDR-DOSプログラム
\で使用される、.INIおよび設定ファイル(つまり、、、、などのDR -DOSアプリケーション固有のファイル、、、、、などのクラス固有のファイル、、、、、またはなどのグローバルファイル)を検索するディレクトリ[ 21 ] (末尾の「」なし)が含まれます。[ 11 ]長いファイル名を含めることはできません。.CFGTASKMGR.INITASKMAX.INIVIEWMAX.INIFASTBACK.CFGCOLORS.INIDRDOS.ININWDOS.INIOPENDOS.INIDOS.INIINSTALLSETUPDISKOPTDOSBOOKEDITFBXFILELINKLOCKSECURITY.OVLNWLOGIN.EXESERNOTASKMAXTASKMGRVIEWMAXUNDELETE
%DRCOMSPEC%%COMSPEC%この変数は、オプションで、変数で定義されたパスよりも優先されるコマンドプロセッサへの代替パスを保持します。オプションで、ファイルとディレクトリのパスワードが含まれます。または、変数が間違ったコマンドラインプロセッサを指している可能性があるシナリオでも変数の使用を強制するために、特別な値ON「 」または「 」を保持することもできます。たとえば、DR-DOSコマンドのいくつかのバージョンを外国のオペレーティングシステムで実行している場合などです。[22]1%COMSPEC%%COMSPEC%SYS
%DRSYS%- この変数を「
ON」または「 」に設定すると、警告が表示される代わりに、1DR-DOSコマンドの一部のバージョンが外国のオペレーティングシステムで動作するようになります。 [22]SYS
%FBP_USER%- Novell DOS 7のFastBackコマンド
FBXと設定ファイルで使用されるユーザー名を指定します。[11]{user}.FB
%HOMEDIR%- この変数にはDR-DOS( DR DOS 5.0および6.0を含む)のホームディレクトリが含まれる場合があります。[11] [20]
%INFO%- DR-DOSのいくつかのバージョンでは、この変数はコマンドのトークン
COMMAND.COMによって表示される文字列を定義します。[20]たとえば、セカンダリシェルを終了する方法をユーザーに通知するために使用できます。$IPROMPT
%LOGINNAME%- DR-DOSの一部のバージョンでは、この変数はNovell NetWareのfeログインスクリプトによって設定されたコマンドのトークン
COMMAND.COMによって表示されるユーザー名を定義します。[10] [11] [20]同様の名前の疑似変数も参照してください。$UPROMPT%LOGIN_NAME%
%MDOS_EXEC%- この変数は、マルチユーザーDOSでは「
ON」または「 」の値を取ることができます。有効にすると、オペレーティングシステムは、DOSの場合と同じドメインでセカンダリアプリケーションを実行するのではなく、セカンダリアプリケーションに最大限のDOSメモリを使用できるように、DOSプログラム領域(DPA)を解放してアプリケーションがセカンダリシェルにシェルアウトすることを許可します。[23] [24]OFF
%NOCHAR%- この変数は、一部のコマンドがメッセージでクエリの「いいえ」として表示する文字を定義するために使用できます。
[Y,N]これにより、現在のシステム デフォルト (NDR-DOS の英語版では通常「 」) が上書きされます。文字列が含まれている場合は、大文字の最初の文字のみが採用されます。一部のコマンドでは、/Yクエリに対して自動的に「はい」と想定するコマンド ライン パラメータもサポートされており、これにより、このようなプロンプトが抑制されます。ただし、パラメータを/Y:yn使用して「はい」/「いいえ」文字を指定すると (これにより%NOCHAR%設定が上書きされます)、クエリは抑制されません。関連するCONFIG.SYSディレクティブNOCHARと環境変数も参照してください%YESCHAR%。[22]
%NOSOUND%- この変数を "
ON" または "1" に設定すると、操作の完了、ユーザーの操作が必要であること、または間違ったキーが押されたことをユーザーに通知するなどの特定の状況で、一部の DR-DOS コマンドによって発行されるデフォルトのビープ音が無効になります。特定のビープ音を明示的に有効にするコマンド ライン オプションは、この設定を上書きします。
%OS%- この変数には、バッチ ジョブおよびアプリケーションでDigital Research由来のさまざまな DOS 関連のオペレーティング システムを区別するためのオペレーティング システムの名前が含まれます。 [21]既知の値には、「
DOSPLUS」(DOS エミュレーションのDOS Plus 1.2CPCDOS 4.1)、「 」(CP/Mエミュレーションの DOS Plus 1.2)、「DRDOS」(DR DOS 3.31~6.0、DR DOS Panther、DR DOS StarTrek、DR-DOS 7.02 [21]~7.05)、「EZDOS」(EZ-DOS 3.41)、「」が含まれます。PALMDOS" および "NetWare PalmDOS" ( PalmDOS 1.0 )、 "NWDOS" ( Novell DOS 7 )、 "NWDOS7" (Novell DOS 7 Beta)、 "OPENDOS" ( Caldera OpenDOS 7.01、Caldera DR-OpenDOS 7.02 )、 "CDOS" ( Concurrent DOS、Concurrent DOS XM )、 "CPCDOS" ( Concurrent PC DOS )、 "CDOS386" ( Concurrent DOS 386 )、 "DRMDOS" ( DRマルチユーザー DOS )、"MDOS" ( CCIマルチユーザーDOS )、[23] "IMSMDOS" ( IMS マルチユーザーDOS )、 "REAL32" ( REAL/32 )。[11] [25] MS-DOSもINTERSVR" " の値を探しますDRDOS。[25]後にWindows NT ファミリ%OS%で導入された同じ名前の環境変数も参照してください。
%PEXEC%- DR-DOSのいくつかのバージョンでは、この変数は外部プログラムの実行から戻った後にプロンプトを表示する前にコマンド
$Xのトークンによって実行されるコマンドを定義します。 [11] [21]PROMPTCOMMAND.COM
%SWITCHAR%- この変数は、一部の DR-DOS コマンドによる引数の解析に使用されるSwitChar を
/定義します。定義されている場合、システムの現在の SwitChar 設定が上書きされます。受け入れられる文字は、" " (DOS スタイル)、"-" (Unix スタイル)、および "[" (CP/M スタイル) のみです。関連するCONFIG.SYSディレクティブSWITCHAR(システムの SwitChar 設定を設定する) およびDR-DOS の一部の問題の%/%システム情報変数COMMAND.COM(ポータブル バッチジョブの現在の設定を取得する) も参照してください。
%TASKMGRWINDIR%- この変数は、 DR-DOSマルチタスクが使用するWindows が配置されているディレクトリを指定し、ファイルを見つけるためのデフォルトの手順を上書きします。[11]
SYSTEM.INITASKMGR
%VER%- この変数には、バッチジョブやコマンドの表示でDR-DOSの異なるバージョンを区別するためにオペレーティングシステムのバージョンが含まれています
VER。[21]$Vこれはコマンドのトークンにも使用され、システム情報変数PROMPTによって返される値に影響します。既知の値には、「」(PalmDOS 1.0)、「」(DOSエミュレーションのDOS Plus 1.2 )、「 」(同時DOS 386 2.0)、「」(同時DOS 386 3.0)、「」(DR DOS 3.31 )、「 」(DR DOS 3.32)、「」(DR DOS 3.33)、「」(DR)が含まれます。DOS 3.34 )、" " ( DR DOS 3.35 )、" " ( DR DOS 3.40 )、 " " ( DR DOS 3.41、EZ-DOS 3.41 )、" " ( DR DOS 3.41T )、" " (同時 PC DOS 4.1 )、" " ( DR DOS 5.0、DR マルチユーザー DOS 5.0 )、 " " ( Novell DR マルチユーザー DOS 5.1 )、" " ( DR Concurrent DOS XM 6.0、DR DOS 6.0 )、" " ( DR Concurrent DOS XM 6.2 )、" " ( Novell DOS 7、Caldera OpenDOS 7.01、DR-DOS 7.02 - 7.05 )、" " ( CCI Multiuser DOS 7.00 )、" " ( DR-DOS) 7.07 )、" " ( IMS マルチユーザー DOS 7.1 )、" " ( CCI マルチユーザー DOS 7.21 )、[23] " " ( CCI マルチユーザー DOS 7.22 ) など[11] [25] [23]%OS_VERSION%1.01.22.03.03.313.323.333.343.353.403.413.41T4.15.05.16.06.277.007.077.17.217.22
%YESCHAR%- この変数は、一部のコマンドがクエリの「はい」に対してメッセージで表示する文字を定義するために使用でき
[Y,N]、現在のシステムデフォルト(YDR-DOSの英語版では通常「 」)を上書きします。文字列が含まれている場合は、大文字の最初の文字のみが採用されます。一部のコマンドは、/Yクエリで自動的に「はい」と想定するコマンドラインパラメータもサポートしており、これによりそのようなプロンプトが抑制されます。ただし、パラメータ/Y:yを使用して「はい」文字を指定すると(これにより%YESCHAR%設定が上書きされます)、クエリは抑制されません。関連するCONFIG.SYSディレクティブYESCHARと環境変数も参照してください%NOCHAR%。[22]
%$CLS%- この変数は、コマンドが発行されたときに画面をクリアするためにコンソール ドライバーに送信される制御シーケンスを定義します
CLS。これにより、内部のデフォルト (←[2JDR-DOS では " "、Amstrad マシン[19]のDOS Plus 1.2←Eでは" "、 VT52端末の場合は Concurrent DOS 、Multiuser DOS 、REAL/32 では " "、ASCII端末の場合はMultiuser DOSでは" ") が上書きされます。[ 23]変数が定義されておらず、コンソール ドライバーが検出されない場合、DR-DOS はMS-DOS/PC DOS と同様にBIOS機能を介して画面を直接クリアします。 8 進数の特別な-表記法がサポートされており、 の fe のように、ESC ( ASCII-27 = "←" = 1Bh = 33o) などの特殊文字を定義できます。バックスラッシュ (" ") 自体を送信するには、" " を 2 つ重ねます。[11] [20] [23]←+ANSI.SYSCOMMAND.COMINT 10h/AH=00hCOMMAND.COM\nnnSET $CLS=\033[2J\\\
%$DIR%- DOS Plusでサポートされており、DIRでディレクトリリストのデフォルトレイアウトを変更するために値「L」(長い)または「W」(広い)を受け入れる。コマンドラインオプション
/Lまたはを使用して上書きできます/W。[20] [19]同様の環境変数%DIRCMD%とDR-DOS COMMAND.COMのDIRオプション/Cとも参照してください。 [11]/R
%$PAGE%- DOS Plusでサポートされており、ページ区切り制御に「
ON」または「 」の値を受け入れます。これを「 」に設定すると、それをサポートするコマンド(DIRやTYPEなど)に追加するのと同じ効果があります。[20] [19]OFFON/P
%$LENGTH%- DOS Plusでコンソールの画面の長さを行単位で定義するために使用されます。これは、
/Pさまざまなコマンドでサポートされているオプションや自動ページ分割と組み合わせて、キーが押されるまで画面出力を一時的に停止する必要がある場合に、移植性の高い方法で制御するために使用されます。[20] [19]関連する環境変数%$WIDTH%と、%DIRSIZE%同様の疑似変数も参照してください%_ROWS%。
%$WIDTH%- DOS Plusでコンソールの画面幅を列単位で定義するために使用されます。これは、
DIR /Wやなどのコマンドの画面出力のフォーマットを移植可能な方法で制御するために使用されますTYPE filename。[20] [19]関連する環境変数%$LENGTH%と、%DIRSIZE%および同様の疑似変数も参照してください%_COLUMNS%。
%$SLICE%- DOS Plusで使用され、マルチタスクプログラムのフォアグラウンド/バックグラウンドタイムスライスを制御するための数値を受け取ります。[20] [19] DOS Plusコマンドも参照してください
SLICE。
%$ON%- この変数には、テキストの強調表示、反転、またはカラー化をオンにするためのオプションの制御シーケンスを保持できます。これは、 ANSI.SYSがロードされている場合やIBM またはESC/P
TYPE wildcardプリンタの場合など、 などのコマンドでファイル名の表示を強調したり、その他の方法で制御したりするために使用されます。サポートされている特殊な8 進表記については、 を参照してください。[11] [19] DOS Plus および DR-DOS では、この変数はデフォルトで未定義ですが、ASCII端末のマルチユーザー DOS のデフォルトは です。[20] [23]関連する環境変数 も参照してください。SET $ON=\033[1mSET $ON=\016\nnn%$CLS%SET $ON=\033p%$OFF%
%$OFF%- この変数には、テキストの強調表示、反転、またはカラー化をオフにするオプションの制御シーケンスを保持できます。これは、ANSI.SYSがロードされている場合やIBM またはESC/P
TYPE wildcardプリンタの場合など、 などのコマンドでファイル名を表示した後に通常の出力に戻すために使用されます。サポートされている特殊な8 進表記については、 を参照してください。[11] [19] DOS Plus および DR-DOS では、この変数はデフォルトで未定義ですが、ASCII端末のマルチユーザー DOS のデフォルトは です。[20] [23]関連する環境変数 も参照してください。SET $OFF=\033[0mSET $OFF=\024\nnn%$CLS%SET $OFF=\033q%$ON%
%$HEADER%TYPEこの変数は、DR-DOS 7.02以降のコマンドのように、ファイルの内容を出力する前に発行されるオプションの制御シーケンスを保持できます。出力をプリンタに送信するとき、つまりSET $HEADER=\017IBMプリンタやESC/Pプリンタに送信するときに、強調表示、ページ付け、または書式設定に使用できます。サポートされている特殊な\nnn8進表記については、を参照してください%$CLS%。[20]関連する環境変数も参照してください%$FOOTER%。
%$FOOTER%- この変数は、DR-DOS 7.02以降のコマンドでファイルの内容の出力後に発行されるオプションの制御シーケンスを保持できます
TYPE。これは、上記のプリンタの例のように、通常の出力形式に戻すために使用されますSET $FOOTER=\022\014。サポートされている特殊な\nnn8進表記については、を参照してください%$CLS%。[20]関連する環境変数も参照してください%$HEADER%。
Datalight ROM-DOS は、次のような追加の標準環境変数もサポートしています。
%DIRSIZE%- この変数は、オプションおよび( DOS Plusのおよびに類似)
rows[,cols]の非標準画面サイズを定義するために使用されます。[18]DIR/P/W%$LENGTH%%$WIDTH%
%NEWFILE%- この変数はCONFIG.SYSディレクティブNEWFILEに与えられた最初のパラメータに自動的に設定されます。[18]
%TZ%、、、、はROM-DOSでも使用されます。%COMM%[ 18 ]%SOCKETS%%HTTP_DIR%%HOSTNAME%%FTPDIR%
OS/2
%BEGINLIBPATH%- 変数で指定されたディレクトリ(システム起動時に特別なCONFIG.SYSディレクティブで設定される) の前にDLL を検索するディレクトリのセミコロンで区切られたリストが含まれます。ここでは、現在の作業ディレクトリの " " を含む相対ディレクトリを指定できます。関連する環境変数も参照してください。
%LIBPATH%LIBPATH.%ENDLIBPATH%
ウィンドウズ
これらの環境変数は重要なオペレーティングシステムリソースの場所を参照するため、通常はユーザーに依存しません。[26]
%APPDATA%- ログインしたユーザーのアプリケーション データディレクトリへの完全なパスが含まれます。Windows NT 4.0 SP6 UK では動作しません。
%LOCALAPPDATA%- この変数はアプリケーションの一時ファイルです。デスクトップ テーマ、Windows エラー報告、Web ブラウザーのキャッシュとプロファイルの保存などに使用されます。
%ComSpec%/%COMSPEC%- 変数
%ComSpec%にはコマンド プロセッサへの完全なパスが含まれます。Windows NT ファミリのオペレーティング システムでは、これはcmd.exeですが、Windows 9xではCOMMAND.COM%COMSPEC%です。
%OS%- この変数には、バッチジョブ
%OS%の異なる機能セットを区別するためのオペレーティングシステムファミリのシンボル名が含まれています。これは、Concurrent DOS、Multiuser DOS、REAL/32、DOS Plus、DR DOS 、Novell DOS、OpenDOSなど、 Digital Research由来のすべてのDOS関連オペレーティングシステムにある同じ名前の環境変数に似ています。Windows NTファミリでは常に文字列 " " が保持されます。[27]%OS%%OS%Windows_NT
%PATH%- この変数には、コマンド インタープリタが指定されたコマンドに一致する実行可能ファイルを検索するディレクトリのセミコロンで区切られた (間にスペースを入れないでください) リストが含まれます。パスを表す環境変数は、
%PATH%変数内にネストできますが、間接レベルは 1 つだけです。このサブパス環境変数自体にパスを表す環境変数が含まれている場合、%PATH%変数置換で適切に展開されません。Unix 変数に相当します$PATH。
%PROCESSOR_ARCHITECTURE%、、、、、%PROCESSOR_ARCHITEW6432%%PROCESSOR_IDENTIFIER%%PROCESSOR_LEVEL%%PROCESSOR_REVISION%- これらの変数にはCPUの詳細が含まれており、システムのインストール時に設定されます。
%PUBLIC%- 変数
%PUBLIC%(Vista で導入) は、パブリック(疑似) ユーザー プロファイル ディレクトリ "C:\Users\Public" を指します。
%ProgramFiles%、、%ProgramFiles(x86)%%ProgramW6432%- 変数は、Windows およびその他のインストール済みプログラムがすべて保存されるProgram Files
%ProgramFiles%ディレクトリを指します。英語システムでのデフォルトは「」です。64 ビット版の Windows (XP、2003、Vista) には、デフォルトで「 」になると、デフォルトで「 」になるもあります。自体は、環境変数を要求しているプロセス自体が 32 ビットか 64 ビットかによって異なります (これは、Windows 上の Windows 64 ビットリダイレクト[28]によって発生します)。C:\Program Files%ProgramFiles(x86)%C:\Program Files (x86)%ProgramW6432%C:\Program Files%ProgramFiles%
%CommonProgramFiles%、、%CommonProgramFiles(x86)%%CommonProgramW6432%- この変数は、Program FilesディレクトリのCommon Filesサブディレクトリを指します。英語システムでのデフォルトは " " です。64 ビット版の Windows (XP、2003、Vista) には、" " にデフォルト設定されていると、" " にデフォルト設定されている もあります。自体は、環境変数を要求するプロセス自体が 32 ビットか 64 ビットかによって異なります (これは、Windows 上の Windows 64 ビットリダイレクトによって発生します)。
C:\Program Files\Common Files%ProgramFiles(x86)%C:\Program Files (x86)%ProgramW6432%C:\Program Files%ProgramFiles%
%OneDrive%- 変数
%OneDrive%は、Windows NT およびその派生製品にある特別なシステム全体の環境変数です。その値は、Onedrive ディレクトリが配置されている場所 (インストールおよびセットアップされている場合) のパスです。%OneDrive%ほとんどの場合、の値は "C:\Users\{Username}\OneDrive\" です。
%SystemDrive%- 変数
%SystemDrive%は、Windows NT およびその派生製品にある特別なシステム全体の環境変数です。その値は、システム ディレクトリが配置されているドライブです。%SystemDrive%ほとんどの場合、の値は "C:" です。
%SystemRoot%- 変数
%SystemRoot%は、Windows NT ファミリのオペレーティング システムにある特別なシステム全体の環境変数です。その値は、ドライブとパスを含むシステム ディレクトリの場所です。ドライブは と同じですが%SystemDrive%、クリーン インストールのデフォルト パスはオペレーティング システムのバージョンによって異なります。デフォルトでは次のようになります。- Windows XP以降のバージョンでは「
\WINDOWS」を使用します。 - Windows 2000、NT 4.0、NT 3.1では「
\WINNT」が使用されます。 - Windows NT 3.5およびNT 3.51では"
\WINNT35" が使用されます。 - Windows NT 4.0 ターミナル サーバーは"
\WTSRV" を使用します。
- Windows XP以降のバージョンでは「
%windir%- この変数はWindowsディレクトリを指します。(Windows NT ファミリのオペレーティング システムでは、変数と同一です
%SystemRoot%)。Windows 95~98およびWindows ME は、既定では "C:\Windows" にインストールされます。Windows の他のバージョンについては、%SystemRoot%上記のエントリを参照してください。
ユーザー管理変数[要引用]には、システム内のさまざまなユーザー プロファイルが所有するリソースと設定に関連する情報が保存されます。原則として、これらの変数は、OS の実行に必要な重要なシステム リソースや場所を参照しません。
%ALLUSERSPROFILE%(%PROGRAMDATA%Windows Vista 以降)- この変数は、 All Usersプロファイル ディレクトリへの完全なパスに展開されます。このプロファイルには、すべてのシステム アカウントで使用されるリソースと設定が含まれています。All Usersのスタート メニューまたはデスクトップディレクトリにコピーされたショートカットリンクは、各ユーザーのスタート メニューまたはデスクトップにそれぞれ表示されます。
%USERDOMAIN%- 現在のユーザーが属するワークグループまたはWindows ドメインの名前。関連する変数 には、現在のユーザーのログイン資格情報 (名前とパスワード) を認証したサーバーのホスト名
%LOGONSERVER%が保持されます。自宅の PC およびワークグループ内の PC の場合、認証サーバーは通常、PC 自体です。Windows ドメイン内の PC の場合、認証サーバーはドメイン コントローラー(Windows NT 4 ベースのドメインではプライマリ ドメイン コントローラー、つまり PDC) です。
%USERPROFILE%- Windows NT およびその派生製品にある特別なシステム全体の環境変数。その値は、現在のユーザーのプロファイル ディレクトリの場所であり、その中にそのユーザーの HKCU レジストリ ハイブ ( ) があります。ユーザーはこの変数を使用して、アクティブなユーザーのログイン ID を決定すること
NTUSERもできます。%USERNAME%
オプションのシステム変数[引用が必要]は、デフォルトでは明示的に指定されていませんが、特定の組み込みコンソール コマンドのデフォルトの動作を変更するために使用できます。これらの変数は、コマンド ライン引数として明示的に指定する必要もありません。
デフォルト値
次の表は、 で取得できる英語版 Windows における特定の環境変数の一般的なデフォルト値を示していますCMD。
(これらの変数の一部は、Windows で実行しているときにも定義されますCOMMAND.COMが、いくつかの重要な詳細が異なります。 ではCOMMAND.COM、環境変数の名前は常に大文字になります。一部の変数 (すべてではありません) には、長いファイル名ではなく短い8.3形式が含まれます。環境に存在する変数の一部が欠落していますが、環境に固有の変数もいくつかあります。)
CMDCOMMAND
このリストには、ユーザーのMy Documentsディレクトリの場所を参照する環境変数がないため、プログラムのホーム ディレクトリをMy Documentsディレクトリに設定する標準的な方法はありません。
疑似環境変数
DOS および Windows のコマンド プロセッサは、疑似環境変数もサポートしています。これらは、環境変数のように取得される値ですが、実際には環境に保存されるわけではなく、要求されたときに計算されます。
ドス
変更または削除されるまで環境に静的に保存される実際の環境変数の他に、バッチ処理用の疑似環境変数が多数存在します。
いわゆる置換パラメータまたは置換可能パラメータ(Microsoft / IBM用語)、別名置換変数(Digital Research / Novell / Caldera用語)[21]またはバッチファイルパラメータ(JP Software用語)[10] %1。%9バッチ%0ジョブの呼び出しパラメータを取得するために使用できます。を参照してくださいSHIFT。バッチジョブでは、環境変数と同様に取得できますが、実際には環境に保存されません。
一部
のコマンドラインプロセッサ(DR -DOS COMMAND.COM、[21] マルチユーザーDOS MDOS.COM / TMP.EXE(ターミナルメッセージプロセス)、JP Software 4DOS、4OS2、4NT、Take Command、Windows cmd.exeなど)は、システム情報変数(Novell / Caldera用語)[21]または内部変数(JP Software用語)[10]と呼ばれる疑似環境変数のタイプをサポートしています。これらを使用すると、バッチジョブで実行中のシステムに関するさまざまな動的だが読み取り専用の情報を取得できます。返される値は、これらの変数が照会された瞬間のシステムの状態を表します。つまり、同じコマンド内でも、複数回続けて読み取ると異なる値が返される場合があります。これらの変数を照会しても、システムに直接影響はありません。これらは環境に保存されないため、SETによってリストされず、外部プログラムが取得するために存在しません。同じ名前の実際の環境変数が定義されている場合は、環境変数が再度削除されるまで、対応する変数よりも優先されます。大文字と小文字は区別されません。4DOSなどでは慣例的にほとんどすべての変数にアンダースコア(" ")が付けられているが(fe )、[10] DR-DOSではそうではない(fe )。
_%_SECOND%COMMAND.COM%OS_VERSION%
さらに、4DOS、4OS2、4NT、Take Commandは、ユーザー定義のものも含め、いわゆる変数関数[10]もサポートしています。これらは内部変数と同じように機能しますが、オプションのパラメータ(fe %@EVAL[]%)を取ることができ、その機能に応じてシステムの状態を変更することさえできます。
DR-DOS でサポートされているシステム情報変数COMMAND.COM:
%AM_PM%- この疑似変数は、現在の時刻の正午前または正午後のステータスを返します。返される文字列は、DR-DOS のロケール固有のバージョンによって異なります。英語バージョンでは、"
am" または " " になります。これは、Novell NetWareログイン スクリプトのpm同じ名前の識別子変数に似ています。
%DAY%- この疑似変数は、先頭にゼロが付いた 2 桁の形式で現在の日付の日数を返します (例: "
01".."31")。同様の疑似変数も参照してください。これは、 Novell NetWareログイン スクリプトの%_DAY%同じ名前の識別子変数に似ています。
%DAY_OF_WEEK%- この疑似変数は、3 文字の形式で曜日名を返します。返される文字列は、DR-DOS のロケール固有のバージョンによって異なり、英語バージョンでは "
Sun"、"Mon"、"Tue"Wed、" "、" "、Thu"Fri"、または " " になります。これは、 Novell NetWareログイン スクリプトの同じ名前の識別子変数Satに似ています。
%ERRORLEVEL%COMMAND.COMDR-DOS 7.02以降では、この疑似変数は外部プログラムまたはコマンドRETURNfe "0".."255"によって返された最後のエラーレベルを返します。[30] [31]%ERRORLEVEL%Windowsの同じ名前の疑似変数とIF ERRORLEVEL条件付きコマンドも参照してください。
%ERRORLVL%- DR-DOS 7.02以降では、この疑似変数は、先頭にゼロが付いた3桁の形式(fe "
000".."255")で最後のエラーレベルを返します。[30] [31]マルチユーザーDOSでは、これはシェルによって終了プログラムの戻りコードに自動的に更新される真の環境変数です。[23]%ERRORLEVEL%DR-DOSの関連する疑似変数とIF ERRORLEVELコマンドも参照してください。
%GREETING_TIME%- この疑似変数は、3 レベルの曜日の挨拶時刻を返します。返される文字列は、DR-DOS のロケール固有のバージョンによって異なり、英語バージョンでは「
morning」、「afternoon」、または「 」になります。これは、 Novell NetWareログイン スクリプトのevening同じ名前の識別子変数に似ています。
%HOUR%1この疑似変数は、先頭のゼロなしの 12 時間形式 (例: " ".." ")で現在の時刻の時間を返します。これは、Novell NetWareログイン スクリプトの12同じ名前の識別子変数に似ています。
%HOUR24%- この疑似変数は、現在の時刻の時間を、先頭にゼロが付いた 2 桁の 24 時間形式で返します (例: "
00".." ")。これは、 Novell NetWareログイン スクリプトの23同じ名前の識別子変数に似ています。同様の疑似変数も参照してください。%_HOUR%
%MINUTE%- この疑似変数は、先頭にゼロが付いた 2 桁の形式で現在の時刻の分を返します (例: "
00".." ")。これは、 Novell NetWareログイン スクリプトの59同じ名前の識別子変数に似ています。同様の疑似変数も参照してください。%_MINUTE%
%MONTH%01この疑似変数は、先頭にゼロ (fe " ".." ")が付いた 2 桁の形式で現在の日付の月を返します。これは、 Novell NetWareログイン スクリプトの12同じ名前の識別子変数に似ています。同様の疑似変数も参照してください。%_MONTH%
%MONTH_NAME%- この疑似変数は、現在の日付の月名を返します。返される文字列は、DR-DOS のロケール固有のバージョンによって異なります。英語バージョンでは、"
January"、"February"、" "、" "、March"April"May、"June"、"July"、" "、"August"、"September"、"October"、または " " になります。これは、 Novell NetWareログイン スクリプトのDecember同じ名前の識別子変数に似ています。
%NDAY_OF_WEEK%- この疑似変数は、現在の週の曜日番号 ("
1".."7" (日曜日は " " )) を返します。これは、 Novell NetWareログイン スクリプトの1同じ名前の識別子変数に似ています。
%OS_VERSION%- この疑似変数は、環境変数 の現在の設定に応じてオペレーティング システムのバージョンを返します
%VER%。%VER%が定義されていない場合は、%OS_VERSION%" " を返します。これはNovell NetWareログイン スクリプト内のoff同じ名前の識別子変数に似ており、DR-DOS 以外のバージョンの DOS のバージョンも返す場合があります。
%SECOND%- この疑似変数は、先頭にゼロが付いた 2 桁の形式で現在の時刻の秒を返します (例: "
00".." ")。これは、 Novell NetWareログイン スクリプトの59同じ名前の識別子変数に似ています。同様の疑似変数も参照してください。%_SECOND%
%SHORT_YEAR%- この疑似変数は、先頭にゼロが付いた 2 桁の形式で現在の日付の年を返します (例: "
93".."99"、"00".." ")。これは、 Novell NetWareログイン スクリプトの92同じ名前の識別子変数に似ています。
%YEAR%そして%_YEAR%- Novell DOS 7以降でサポートされている疑似変数は、
%YEAR%現在の日付の年を 4 桁の形式 (fe "1980".." ") で返します。これはNovell NetWareログイン スクリプトの2099同じ名前の識別子変数に似ています。DR-DOS 7.02 以降では4DOSとの互換性のために追加され、同じ値を返します。[10]%_YEAR%
%/%COMMAND.COMDR-DOS 7.02以降では、この疑似変数はシステムの現在のSwitChar/設定(「 」(DOSスタイル)または「-」(Unixスタイル))を返します。[32] [33]CONFIG.SYS関連するディレクティブSWITCHARと環境変数も参照してください%SWITCHAR%。
%_CODEPAGE%- この疑似変数は、システムの現在のコードページ("
1".."65533")、fe "437"、"850"、" "を返します。この変数はもともと4DOS858で導入されましたが、[10] DR-DOS 7.02以降でも使用できるようになりました。コマンドも参照してください。COMMAND.COMCHCP
%_COLUMNS%- この疑似変数は、表示モード("
40"、"80"、"132"など)に応じて現在の画面列数を返します。この変数はもともと4DOSで導入されましたが、[10] DR-DOS 7.02以降でも使用できるようになりました。DOS PlusのCOMMAND.COM同様の環境変数も参照してください。%$WIDTH%
%_COUNTRY%- この疑似変数は、システムの現在の国コード("
1".."65534")を返します。fe "1"は米国、" "は44英国、"49"はドイツ、"20049"はISO 8601、"21049"はISO 8601とユーロのサポートでそれぞれ返されます。[33] [34]この変数はもともと4DOSで導入されましたが、[10]COMMAND.COMDR-DOS 7.02以降でも使用できるようになりました。CONFIG.SYSディレクティブも参照してくださいCOUNTRY。
%_DAY%- この疑似変数は、先頭にゼロを付けずに現在の日付の日数を返します(例:"
1".." ")。この変数はもともと4DOS31で導入されましたが、[10] DR-DOS 7.02以降でも使用できるようになりました。同様の疑似変数も参照してください。COMMAND.COM%DAY%
%_HOUR%- この疑似変数は、先頭のゼロなしの24時間形式で現在の時刻の時間を返します(例:"
0".." ")。この変数はもともと4DOS23で導入されましたが、[10] DR-DOS 7.02以降でも使用できるようになりました。同様の疑似変数も参照してください。COMMAND.COM%HOUR24%
%_MINUTE%- この疑似変数は、先頭にゼロを付けずに現在の時刻の分を返します(例:"
0".." ")。この変数はもともと4DOS59で導入されましたが、[10] DR-DOS 7.02以降でも使用できるようになりました。同様の疑似変数も参照してください。COMMAND.COM%MINUTE%
%_MONTH%- この疑似変数は、先頭にゼロを付けずに現在の日付の月を返します(例:"
1".." ")。この変数はもともと4DOS12で導入されましたが、[10] DR-DOS 7.02以降でも使用できるようになりました。同様の疑似変数も参照してください。COMMAND.COM%MONTH%
%_ROWS%- この疑似変数は、表示モード("
25"、"43"、"50"など)に応じて現在の画面行数を返します。この変数はもともと4DOSで導入されましたが、[10] DR-DOS 7.02以降でも使用できるようになりました。DOS PlusのCOMMAND.COM同様の環境変数を参照してください。%$LENGTH%
%_SECOND%- この疑似変数は、先頭にゼロを付けずに現在の時刻の秒を返します(例:"
0".." ")。この変数はもともと4DOS59で導入されましたが、[10] DR-DOS 7.02以降でも使用できるようになりました。同様の疑似変数も参照してください。COMMAND.COM%SECOND%
ネットワークがロードされたDR-DOS でサポートされるシステム情報変数COMMAND.COM:
%LOGIN_NAME%- この疑似変数はユーザー名を返します。これは常に で動作しますが、現在のドライブが PNW にマップされたドライブである場合は、 Personal NetWareのODI / VLM
NETXでも動作します(それ以外の場合は空の文字列が返されます)。同様の名前の環境変数 も参照してください。%LOGINNAME%
%P_STATION%- この疑似変数は、物理ステーション番号を " " 形式で返します
????????????。値はネットワーク アダプタのMAC アドレスに依存しますが、上書きできます。これは、 Novell NetWareログイン スクリプトの同じ名前の識別子変数に似ています。
%STATION%- この疑似変数は、最初のクライアントの「 」で始まる論理ステーション番号を返します。番号はファイル サーバーによって割り当てられ、 IPX
1接続が確立されている限り静的のままです。これは、 Novell NetWareログイン スクリプトの同じ名前の識別子変数に似ています。
%FULL_NAME%- この疑似変数は、ログインしているユーザーのフルネームを返します (存在する場合)。これは、Novell NetWareログイン スクリプト内の同じ名前の識別子変数に似ています。関連する疑似変数も参照してください。
%LOGIN_NAME%
ウィンドウズ
動的環境変数( DOS では内部変数またはシステム情報変数とも呼ばれる) は、コマンド ライン拡張機能が有効になっている場合に がサポートする疑似環境変数でありCMD.EXE、照会されるたびにさまざまな個別の値に展開されます。つまり、同じコマンド内でも複数回照会されると値が変わる可能性があります。 動的環境変数はバッチ ジョブやプロンプトで使用できますが、環境には保存されません。したがって、 によってリストされることもSET、外部プログラムが読み取るために存在することもありません。大文字と小文字は区別されません
。
間接的には、コマンドを実行するために
COMMAND.COM内部的に呼び出すように変更されたWindows の もサポートされています。CMD.EXE
%CD%- この疑似変数は、
CD引数なしで呼び出された場合、コマンドの出力と同等の現在のディレクトリに展開されます。CMD.EXE現在のディレクトリに応じて では長いファイル名が返される可能性がありますが、 では現在のディレクトリが常に8.3形式であるため、 が内部的に を呼び出す場合でも、 ではCOMMAND.COM短いファイル名が返されます。COMMAND.COMCOMMANDCMD
%CMDCMDLINE%- この疑似変数は、 の元の起動パラメータ (
CMD.EXEfe "C:\Windows\system32\cmd.exe") に展開されます。Windows の では、 が内部的にを呼び出すため、COMMAND.COM" " のようなものが返される場合があります。C:\Windows\system32\cmd.exe /c ...COMMAND.COMCMD.EXE
%CMDEXTVERSION%- この疑似変数は、 のコマンドライン拡張機能
CMD.EXEが有効になっている場合、そのバージョンに展開されます (例: Windows NT1では " " 、Windows 2000およびWindows XPでは " " )。2
%DATE%- この疑似変数は現在の日付に展開されます。日付は現在のユーザーの日付形式の設定に従って表示されます。
%ERRORLEVEL%0この疑似変数は、最後に設定されたエラーレベル、つまり「 」から「 」までの値255(先頭のゼロなし)に展開されます。[30] [35] [31]%ERRORLEVEL%外部コマンドと一部の内部コマンドは、実行時にエラーレベルを設定します。DR -DOSの同じ名前の疑似変数とコマンドも参照してくださいIF ERRORLEVEL。
%HIGHESTNUMANODENUMBER%- この疑似変数は、最高のNUMAノードの数を返します。
%RANDOM%0この疑似変数は、「 」から「 」の間の乱数を返します32767。
%TIME%- この疑似変数は、現在の時刻を返します。時刻は、現在のユーザーの時刻形式の設定に従って表示されます。
%TIME%および%DATE%変数の両方が使用されている場合、真夜中のロールオーバーの問題を回避するために、両方の変数をこの特定の順序で連続して読み取ることが重要です。
その他のシェル
Unix系シェルにも同様に動的に生成される変数があり、bashが$RANDOMその例としてよく知られています。しかし、これらのシェルにはローカル変数の概念があるため、代わりに特別なローカル変数として記述されます。[36]
参照
注記
- ^ ab 128 文字を超える環境変数に適切に対応できないアプリケーションには、CadStar PCB、Checkit、Computer Select CD-ROM、RenderMan、VINES Network、Windows 3.0、Word for Windows 6.0などがあります。
- ^ 4DOSとMS-DOS 7.0 は長さを 127 に設定し、この位置にASCII-13 を挿入しますが、 Borlandライブラリは長さを無効な値 128 に設定し、ASCII-13 を挿入しません。短いコマンド ラインの場合、4DOS/ NDOSとDR-DOSも ASCII-13 の後にASCII-0 を挿入しますが、INSTALLディレクティブを介して呼び出された場合は挿入されません。MS-DOS は挿入しません。
参考文献
- ^ Robbins, Arnold; Beebe, Nelson HF (2005 年 5 月). Apandi, Tatiana; Randal, Allison; Witwer, Adam (編). Classic Shell Scripting (第 1 版). O'Reilly . ISBN 978-0-596-00595-5。
- ^ 「unset - 変数と関数 の値と属性の設定を解除する -」。コマンドとユーティリティのリファレンス、The Single UNIX 仕様- The Open Group 基本仕様、IEEE Std 1003.1-2008 (第 7 版)。IEEEとThe Open Group。2016 [2001]。2017 年 12 月 18 日にオリジナルからアーカイブ。2017年 12 月 18 日に取得。
- ^ fgrose (2015-07-31) [2011]. 「組み込みコマンド unset」. Bash Hackers Wiki . 2017-12-18 にオリジナルからアーカイブ。 2017-12-18に取得。
- ^ Jacobs, Mike; Koren, Alexander; Satran, Michael (2017-11-14). 「設定とその他のアプリ データを保存および取得する」。Microsoft。2017-12-18のオリジナルからアーカイブ。2017-12-18に取得。
- ^ Raymond, Eric (2002-08-02) [2001年に初版]. 「The BROWSER project」. 2019年9月21日時点のオリジナルよりアーカイブ。2020年10月21日閲覧。
- ^ 「LWN - 開発」。LWN.net。2001-02-01。2019-02-08にオリジナルからアーカイブ。2020-10-21に取得。BROWSER
環境変数の標準化。Eric Raymondは、既存のPAGER、MAILER、EDITOR変数を補完する新しい環境変数BROWSERの使用を推進しています。この取り組みは、社会システムをハッキングする実験としてテストされています。
- ^ Špaček, Michal (2020-01-19) [最初のバージョンは2013年に公開されました]。「Env::Browser-0.06」。metacpan.org。2020-10-21にオリジナルからアーカイブ。2020-10-21に取得。Env
::Browser - 環境変数$BROWSERを処理し、Webブラウザーを実行します。
- ^ "webbrowser — 便利な Web ブラウザ コントローラ". docs.python.org . 2020 年 10 月 13 日時点のオリジナルよりアーカイブ。2020 年 10 月 21 日閲覧。
- ^ 「DefaultWebBrowser - Debian Wiki」。wiki.debian.org。2020-06-10。2020-10-21にオリジナルからアーカイブ。2020-10-21に取得。環境
変数 BROWSER を設定すると、[…] 常に希望のブラウザを選択できます。
- ^ abcdefghijklmnopqrstu vwxyz aa ab Brothers, Hardin; Rawson, Tom ; Conn, Rex C .; Paul, Matthias R.; Dye, Charles E.; Georgiev, Luchezar I. (2002-02-27). 4DOS 8.00 オンラインヘルプ。
- ^ abcdefghijklmnopqr ポール、マティアス R. (1997-07-30) [1994-05-01]。 NWDOS-TIP — Novell DOS 7 に関するヒントとコツ、詳細、バグ、回避策を含む Blick です。リリース 157 (ドイツ語) (第 3 版)。 2016-11-04 のオリジナルからアーカイブ。2014 年 8 月 6 日に取得。
{{cite book}}:|work=無視 (ヘルプ) (注: NWDOSTIP.TXT はNovell DOS 7およびOpenDOS 7.01に関する包括的な資料で、多くの文書化されていない機能や内部構造の説明が含まれています。提供されているリンクは、コレクションの一部であるファイルの HTML 変換バージョンを指していますMPDOSTIP.ZIP。) [1] - ^ abcde ポール、マティアス R. (1997-05-01) [1995-03-01]. 「JPSofts 4DOS 5.5b/c、5.51、5.52a および NDOS に関するヒント」。MPDOSTIP (ドイツ語)。 2016-11-04 のオリジナルからアーカイブ。2015 年 5 月 8 日に取得。
4DOS5TIP.TXT(注:提供されたリンクは、コレクションの一部であるファイルのHTML変換バージョンを指していますMPDOSTIP.ZIP。)[2] - ^ ab Paul, Matthias R. (1997-10-02). 「Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM README.TXT」。2003-10-04 時点のオリジナルよりアーカイブ。2009-03-29閲覧。[3]
- ^ Paul, Matthias R. (1997-05-27) [1996]. 「SETENV v1.11」。2009-02-15 にオリジナルからアーカイブ。2019-08-09に取得。 [
…] SETENV […] は […] プレ環境を非表示にし、後で復元します […] SETENV.COM を使用すると、
INSTALL=
/
INSTALLHIGH=
/
HIINSTALL=
によってロードされたドライバーの数とプレ環境の現在のサイズに応じて、希少な DOS メモリを数キロバイト節約できます […]。 […] この独自の […] 機能は、既知のメモリ マネージャー/オプティマイザーには見当たりません。 […]
- ^ Paul, Matthias R. (2002-04-06). 「Re: [fd-dev] ANNOUNCE: CuteMouse 2.0 alpha 1」. freedos-dev . 2020-02-07 にオリジナルからアーカイブ。2020-02-07に取得。
[…] CTMOUSE.ASM prepareTSR ルーチンで、ゼロ環境に関するコメントを見つけました。 […]
DESQview
または
DRDOSゼロ環境? […] 環境ブロックを解放 […] 問題があればスキップ […]
MEM
スタイルのユーティリティ
のゼロパッド[…]
- ^ 「PTS-DOS 2000 Pro ユーザーマニュアル」(PDF) 。 2018年5月12日時点のオリジナルよりアーカイブ(PDF) 。 2018年5月12日閲覧。
- ^ Paul, Matthias R. (2002-10-07). 「Re: COM ファイルを実行する」。ニュースグループ: alt.msdos.programmer。2017-09-03 のオリジナルからアーカイブ。2017-09-03に取得。[4]
- ^ abcdef Datalight, Inc. ; GPvNO (2005 年 4 月) [1999]。「Datalight ROM-DOS ユーザーズ ガイド」(PDF)。Datalight , Inc. 3010-0200-0716。2019年 3 月 20 日にオリジナルからアーカイブ(PDF) 。2018 年 9 月 16 日に取得。
- ^ abcdefghi Kotulla, Martin (1987年11月). 「CP/M zu MS-DOS、第11部」(PDF) . Professional Computing (PC) - Schneider International (ドイツ語). 3 (11): 100–103. 2019年4月24日時点のオリジナルよりアーカイブ(PDF) . 2018年5月20日閲覧。
- ^ abcdefghijklmn Paul, Matthias R. (2002-03-26). 「Updated CLS posted」. freedos-dev メーリングリスト。2018-10-04 時点のオリジナルよりアーカイブ。2014-08-06閲覧。
- ^ abcdefgh Caldera DR-DOS 7.02 ユーザー ガイド。カルデラ社、 1998 [1993、1997]。 2016-11-04 のオリジナルからアーカイブ。2013 年 8 月 10 日に取得。
- ^ abcd Paul, Matthias R. (2017-08-14) [2017-08-07]. 「OmniBook 300 の拡張モードでの Windows 3.1 の継続的な物語」MoHPC - HP 電卓博物館。 2018-05-01 にオリジナルからアーカイブ。2018-05-01に取得。
[…] DRSYS=ON を設定します (SYS に、外部環境で実行していることを認識しており、このシナリオで表示される警告や追加情報画面を個別に ACK せずにとにかく続行することを通知するためのオプション) […]
- ^ abcdefghi CCI Multiuser DOS 7.22 GOLD オンライン ドキュメント。Concurrent Controls, Inc. (CCI)。1997-02-10。HELP.HLP。
- ^ CCI マルチユーザー DOS 7.22 GOLD インストール ガイド。Concurrent Controls, Inc. (CCI)。1997-02-10。PRINTDOC.HLP。
- ^ abc Paul, Matthias R. (2002-02-20). 「FreeCOM/FreeDOS をバッチで検出する方法?」. freedos-dev メーリングリスト。2018-11-06 にオリジナルからアーカイブ。2014-08-06に取得。
- ^ 「認識される環境変数 - Windows 展開」。2024 年 1 月 9 日。
- ^ Brink, Shawn (2018-11-17). 「Windows 10 の環境変数 - Windows 10 の環境変数の完全なリスト」. Windows Ten フォーラム. 2019-03-27 にオリジナルからアーカイブ。2019-04-24に取得。
- ^ 「WOW64 実装の詳細」。
- ^ abcdefghijklmnopqrstu vwxyz aa ab ac ad ae af ag ah ai aja ak シュルツ、ハジョ (2014-10-02). 「Ordner für spezielle Fälle — Die "benannten Ordner" in Windows aus User- und Entwicklersicht」 [特別な目的のフォルダー — ユーザーと開発者の観点から見た Windows の「名前付きフォルダー」]。c't - コンピュータ技術雑誌(ドイツ語)。2014年(平成22年)。ハイゼ・フェルラーク: 180–184。 2016-07-09 のオリジナルからアーカイブ。2019年4月8日に取得。
- ^ abc ポール、マティアス R. (1997-05-01) [1993-10-01]. BATTIPs — バッチジョブのプログラムに関するヒントとコツ (ドイツ語)。 7: エラーレベル アブフラゲン。 2017-08-23 のオリジナルからアーカイブ。2017 年 8 月 23 日に取得。
{{cite book}}:|work=無視されました (ヘルプ) [5] [6] 2017-09-11にarchive.todayにアーカイブされました(注: BATTIPS.TXTはMPDOSTIP.ZIPの一部です。提供されたリンクは、HTMLに変換された古いバージョンのBATTIPS.TXTファイルを指しています。) [7] - ^ abc Auer, Eric; Paul, Matthias R.; Hall, Jim (2015-12-24) [2003-12-31]. 「MS-DOS errorlevels」。2015-12-24時点のオリジナルよりアーカイブ。
- ^ Paul, Matthias R. (1998-01-09). DELTREE.BAT R1.01 Extended file and directory delete. Caldera, Inc. 2019-04-08 のオリジナルからアーカイブ。2019-04-08に取得。
- ^ ab DR-DOS 7.03 WHATSNEW.TXT — DR-DOS 7.02 から DR-DOS 7.03 への変更。Caldera , Inc. 1998-12-24。2019-04-08 にオリジナルからアーカイブ。2019-04-08に取得。
- ^ Paul, Matthias R. (2001-06-10) [1995]. 「DOS COUNTRY.SYS ファイル形式」(COUNTRY.LST ファイル) (1.44 版). 2016-04-20 にオリジナルからアーカイブ。2016-08-20に取得。
- ^ Allen, William; Allen, Linda. 「Windows 95/98/ME ERRORLEVELs」。2011-07-07時点のオリジナルよりアーカイブ。
- ^ 「シェル変数」。Bashリファレンスマニュアル。
さらに読む
- Chen, Raymond (2010-05-06)。「これらの奇妙な =C: 環境変数とは何ですか?」。The New Old Thing。Microsoft。2018-05-27にオリジナルからアーカイブ。2017-05-27に取得。
