-1

次のコマンドを使用して、ac# コンソール アプリケーションの環境変数に値を設定しています。

 System.Environment.SetEnvironmentVariable(envvar, result,EnvironmentVariableTarget.Process);

コマンド ウィンドウでアプリケーションを実行した後、その変数をエコーし​​ようとすると、値が表示されません。このアプリケーションをバッチ ファイルで使用する必要があります。SET コマンドのような機能が必要です。助けてください..

編集: System.Environment.SetEnvironmentVariable(envvar,result,EnvironmentVariableTarget.user) を使用して、変更を伝播しようとしましたが、このPropagating Change in Env VArを試しました。しかし、同じコマンド ウィンドウで変数をエコーできません。

質問を言い換えましょう: C# で環境変数に値を設定したいです。その変数を同じコマンド ウィンドウで使用できる必要があります (つまり、新しいコマンド ウィンドウを開いて変更を確認するべきではありません)。SET コマンドを使用すると、その変数をすぐに使用できます.. rt ? そういう機能が欲しい。Plzzヘルプ

4

2 に答える 2

2

EnvironmentVariableTarget.Process を使用すると、次のサンプルでわかるように、変数セットは現在のプロセスでのみ表示されます。

System.Environment.SetEnvironmentVariable("myVar", "myValue", EnvironmentVariableTarget.Process);
string s = System.Environment.GetEnvironmentVariable("myVar",EnvironmentVariableTarget.Process);

myVar の上に s = "myValue" が表示されますが、コマンド ウィンドウには表示されません。

コマンド ウィンドウで表示される値を設定する場合は、EnvironmentVariableTarget.User を使用する必要があります。

System.Environment.SetEnvironmentVariable("myVar", "myValue", EnvironmentVariableTarget.User);

このようにして、設定 myVar=myValue が保存され、コマンド ウィンドウで確認できます。

詳細サンプルはこちら

于 2012-06-09T04:06:43.250 に答える
1

現在のバッチプロセスでenvを確認するため。プログラムで文字列として出力し、解析してバッチファイルでセットを呼び出す必要があります。

または、EnvironmentVariableTarget.User を試すことができます。このオプションを設定すると、env はすべての新しいプロセスで表示されます。

于 2012-06-09T04:06:38.857 に答える