4

Windowsで環境変数を定義するには、2つの方法があります。「システム」変数と単なる「環境」変数を使用した例を見てきました。一方の方法をもう一方の方法と使用した場合の違いと結果は何ですか?

4

3 に答える 3

4

%SystemRoot%や%WinDir%などの変数は、単なる環境変数です。唯一の違いは、それらの値がどこから来るかです。

  • システム環境変数は事前定義されており、セットアップによって決定されます。 このTechnetの記事「Cmd.exeでの環境変数の使用」セクションには、それらの名前がリストされています。これは古く、64ビット固有の変数をカバーしていないことに注意してください。
  • HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \Environmentレジストリキーで定義された構成可能なシステム全体の環境変数。すべてのユーザーに有効です。
  • HKEY_CURRENT_USER\Environmentレジストリキーで定義された構成可能なユーザー固有の環境変数。

効果的なプロセス環境は、これら3つのソースを統合したものです。

後者の2つのレジストリキーは、コントロールパネル+システムアプレットの[環境変数]ボタンから編集できます。変更を有効にするには、ログオフとログオンが必要になる場合があるため、プロセスは、親プロセスから継承した古いコピーではなく、環境の新しいコピーから開始されることに注意してください。

于 2012-05-13T16:48:44.127 に答える
3

環境変数は、次の順序で「評価」されます(つまり、属性が付けられます)。

システム変数autoexec.batで定義されている変数ユーザー変数すべてのプロセスには、環境変数とその値のセットを含む環境ブロックがあります。環境変数には、ユーザー環境変数(ユーザーごとに設定)とシステム環境変数(全員に設定)の2種類があります。子プロセスは、デフォルトでその親プロセスの環境変数を継承します。

コマンドプロセッサによって開始されたプログラムは、コマンドプロセッサの環境変数を継承します。

環境変数は、ファイルの検索パス、一時ファイルのディレクトリ、アプリケーション固有のオプション、およびその他の同様の情報を指定します。システムは、ユーザーごとに1つ、コンピューター用に1つの環境ブロックを維持します。システム環境ブロックは、特定のコンピューターのすべてのユーザーの環境変数を表します。ユーザーの環境ブロックは、システム環境変数のセットを含む、その特定のユーザーに対してシステムが維持する環境変数を表します。

于 2013-04-30T17:22:06.357 に答える
2

私の理解では、「システム」オプションは管理者アカウントでのみ使用できます。このオプションを選択すると、すべてのユーザーに変数値が提供されます。管理者以外のユーザーの環境変数であり、値を独自の目的の値でオーバーライドできます。この2番目のオプションは、システム上の他のアカウントには影響しません。

システム変数を定義するには、システムを更新するためにシステムを再起動する必要があります。コマンドプロンプトと環境オプションを使用する場合は、定義した変数を使用するために、新しいプロンプトまたは新しいプロンプトが必要です。

于 2012-05-13T16:09:38.940 に答える