簡體   English   中英

C#設置環境變量

[英]C# set environment variable

我在使用C#設置環境變量時遇到問題。

我需要在某些情況下修改一些環境變量。 例如,我需要修改NDSRC變量。

我用:

Environment.SetEnvironmentVariable("MY_VARIABLE", "value", EnvironmentVariableTarget.Machine);

這很好用。

接下來我運行一些腳本whitch使用變量。 現在有一個問題,因為腳本沒有看到變量。

示例:使用設置Path變量(在末尾添加目錄)

string path = Environment.GetEnvironmentVariable("Path", EnvironmentVariableTarget.Machine) + ";c:\\";
Environment.SetEnvironmentVariable("Path", path, EnvironmentVariableTarget.Machine);

打開Windows命令行(開始 - >運行 - > cmd.exe)。

在命令行中鍵入cmd

系統找不到cmd.exe:'cmd'未被識別為內部或外部命令,可運行程序或批處理文件。

如果檢查Windows設置 - >環境變量,則路徑正確設置為新值。 如果您簽入打開的命令提示符,它也會被設置。

不幸的是,您需要在刷新環境變量之前重新啟動進程。 請參閱此MSDN帖子

根據設計,變量在進程啟動時繼承,並在此之后保持不變。

但是,沒有理由不能只是定期讀取相關的注冊表項並從中手動更新進程的環境變量。 事實上,如果你追求最新的價值觀,這是正確的做法

基本上,注冊表存儲環境變量的模板 ,這是您通過“Windows設置 - >環境變量”編輯的內容。 當您這樣做時,Windows會向所有相關方廣播一條消息。 然后,任何此類方都可以從注冊表重新創建環境變量的副本。

我不知道你可以打電話來執行這種重新創建的任何現成功能,所以你可能必須自己編寫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM