219

環境変数を取得するにはどうすればよいですか?何かが不足している場合は値を設定しますか?

4

9 に答える 9

299

System.Environmentクラスを使用します。

メソッド

var value = System.Environment.GetEnvironmentVariable(variable [, Target])

System.Environment.SetEnvironmentVariable(variable, value [, Target])

あなたのために仕事をします。

オプションのパラメータTargetは列挙型EnvironmentVariableTargetMachine、 、Process、または のいずれかUserです。省略した場合、デフォルトのターゲットは現在のプロセスです。

于 2008-10-08T22:44:20.753 に答える
35

.NET コンソール アプリで PATH 環境変数を読み取る作業をしているときに、これに遭遇しました。System.Environment.GetEnvironmentVariable を使用すると、環境変数が自動的に展開されることがわかりました。

私はそれを望んでいませんでした...つまり、「%SystemRoot%\system32」などのパス内のフォルダーが「C:\Windows\system32」に書き換えられていたということです。展開されていないパスを取得するには、これを使用する必要がありました。

string keyName = @"SYSTEM\CurrentControlSet\Control\Session Manager\Environment\";
string existingPathFolderVariable = (string)Registry.LocalMachine.OpenSubKey(keyName).GetValue("PATH", "", RegistryValueOptions.DoNotExpandEnvironmentNames);

私にとって魅力のように働きました。

于 2012-03-23T19:11:07.693 に答える
27

取得および設定

得る

string getEnv = Environment.GetEnvironmentVariable("envVar");

設定

string setEnv = Environment.SetEnvironmentVariable("envvar", varEnv);
于 2013-06-10T22:34:43.040 に答える
16

これは、マシン設定である環境変数に対して機能します。ユーザーの場合は、代わりにユーザーに変更してください。

String EnvironmentPath = System.Environment
                .GetEnvironmentVariable("Variable_Name", EnvironmentVariableTarget.Machine);
于 2010-05-04T05:59:48.027 に答える
7
Environment.SetEnvironmentVariable("Variable name", value, EnvironmentVariableTarget.User);
于 2012-08-01T13:17:48.283 に答える
1

Visual Studio 2019 -- プロジェクトを右クリックして [プロパティ] > [設定] を選択し、名前 (ConnectionString など)、型、値を指定して新しい変数を追加します。次に、コードで次のように読み取ります。

var sConnectionStr = Properties.Settings.Default.ConnectionString;

これらの変数は、プロジェクトの種類に応じて構成ファイル (web.config または app.config) に保存されます。以下に例を示します。

  <applicationSettings>
    <Testing.Properties.Settings>
      <setting name="ConnectionString" serializeAs="String">
        <value>data source=blah-blah;etc-etc</value>
      </setting>
    </Testing.Properties.Settings>
  </applicationSettings>
于 2021-03-20T16:36:32.713 に答える
0

次を使用して環境変数を更新できます

string EnvPath = System.Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Machine) ?? string.Empty;
if (!string.IsNullOrEmpty(EnvPath) && !EnvPath .EndsWith(";"))
    EnvPath = EnvPath + ';';
EnvPath = EnvPath + @"C:\Test";
Environment.SetEnvironmentVariable("PATH", EnvPath , EnvironmentVariableTarget.Machine);
于 2016-08-25T09:46:48.117 に答える