1. 程式人生 > >Windows不重啟使環境變數修改生效的詳細步驟

Windows不重啟使環境變數修改生效的詳細步驟

在“我的電腦”->“屬性”->“高階”->“環境變數”中增加或修改環境變數後,需重啟系統才能使之生效。這就很麻煩,因為我寫程式碼的時候一般會同時看視訊,重啟後還要連網、找視訊、找到當時看的位置。。。。好吧,我就想,有沒有什麼方法可讓它即時生效呢?

  以修改環境變數“PATH”為例,修改完成後,進入DOS命令提示符,輸入:set PATH=C: ,關閉DOS視窗。再次開啟DOS視窗,輸入:echo %PATH% ,可以發現“我的電腦”->“屬性”->“高階”->“環境變數”中設定的 PATH 值已經生效。

  不用擔心DOS視窗中的修改會影響環境變數的值,DOS視窗中的環境變數只是Windows環境變數的一個副本而已。但是對副本的修改卻會引發Windows環境變數的重新整理,這正是我們想要的!

  詭異啊,使用win+R->cmd 啟動的cmd.exe 會發現在電腦屬性中設定的環境變數立馬生效了,在其他模式下啟動的cmd卻沒有發生效果,怪哉!!查看了一下資料,在電腦屬性中設定環境變數以後,以後啟動的程式和執行緒會生效,而對以前駐留記憶體的程式不起作用,也有人說kill explorer.exe 再啟動explorer.exe 可以激發設定其作用。

這裡要理解的是,一個程式啟動時,環境變數被複制到該程式所在的環境中,在該程式執行過程中不會被除該程式以外的其他程式所改變。也就是說,假設我們啟動了一個cmd程式,然後通過控制面板修改了環境變數設定,但是已經啟動了的cmd所擁有的環境變數並不會被改變。如果我們在修改環境變數之後啟動cmd程式,則該程式將擁有新的環境變數。

那麼結論就很明顯了:修改環境變數之後,如果受影響的是應用程式,那麼只要簡單地重新啟動此應用程式,環境變數的修改就會反映到該程式中,而不必重新啟動計算機;但是,如果受影響的是系統服務,就必須重新啟動才能將環境變數的修改反映到系統服務中(因為沒有辦法在不重啟計算機的情況下重新啟動系統服務管理器)