我試圖用句子如何設置一個名爲CLIENTIP的環境變量?
Environment.SetEnvironmentVariable("CLIENTIP", <value>)
但變量不創建。我使用了字符串變量和常量來設置值。
那麼,我該如何做到這一點工作?
我試圖用句子如何設置一個名爲CLIENTIP的環境變量?
Environment.SetEnvironmentVariable("CLIENTIP", <value>)
但變量不創建。我使用了字符串變量和常量來設置值。
那麼,我該如何做到這一點工作?
你能解釋一下你沒有用的意思嗎?該代碼肯定會爲當前進程設置環境變量CLIENTIP。
如果您想更廣泛地設置它,您將不得不使用SetEnvironmentVariable
方法的不同超載。
Environment.SetEnvironmentVariable(
"CLIENTIP",
value,
EnvironmentVariableTarget.Machine);
EnvironmentVariableTarget
參數可讓您定位進程,機器或當前用戶。
注意:這些更改可能不會顯示在現有的進程中,因爲並非所有類型的進程都立即對此更改作出響應(cmd.exe是一個想到的問題)。但它會顯示在未來的流程上。
Afaik是唯一一個立即適應變化的過程,因爲這是一個啓動過程。 – Joey 2010-06-09 15:17:36
這可能是關鍵。環境變量有多個副本。嘗試啓動兩個命令行。在第一次運行'set test = 123'然後'set'。你會看到'test'存在。在第二次運行'set'。 'test'不存在。他們每個人都有自己的環境變量的「工作副本」。當一個進程啓動時,它將擁有一個父進程變量的副本,但它們將是獨立的。兩個命令行進程都使用相同的變量(來自explorer.exe?)啓動。任何更改只會影響其本身以及將來的任何子進程。 – 2010-06-09 15:23:50
在該行之後,嘗試使用'string val = Environment.GetEnvironmentVariable(「CLIENTIP」);'val應該具有您設置的值。您需要使用重載將'EnvironmentVariableTarget'設置爲'Machine','Process'(默認值)或'User'。 – 2010-06-09 15:27:12