題 Windows 7的PATH和環境變量已損壞


我不知道,但最近我遇到了這個問題。突然運行我的工作站後,有些東西會破壞路徑,很多東西都會停止工作。最初,我的路徑列出了很多目錄(我使用Windows 7作為開發框),過了一段時間,我的路徑中只列出了3-4個目錄。

我甚至無法打開系統屬性對話框,在那裡我可以看到環境變量(因為它使用shell變量啟動它並且它不起作用)。簡而言之,我每次都重啟。

什麼可能導致這個問題?我最近沒有做任何新的/不尋常的事情。只有VmWare(但我過去一直在使用它,當時沒有那個問題)。

我甚至檢查過 %WINDIR% 沒有定義。 WTF?


96
2017-11-09 17:48


起源


我最近在我的64位Vista盒子上遇到了同樣的問題。沒有明顯原因,如果我打開一個新的命令提示符,那麼路徑變量將設置為“用戶變量”中定義的路徑部分。缺少路徑的“系統變量”部分。一些但不是所有系統變量都是未定義的。註冊表看起來沒問題,系統屬性對話框中的所有內容都顯示正常(使用“c:\ windows \ system32 \ systempropertiesadvanced.exe”)。重啟後,系統正常運行。每隔幾天就會出現問題。完整的病毒掃描一無所獲。 - Lee
我有同樣的問題。我發現了一些不同的東西觸發它(運行某些程序,運行安裝程序等),但沒有理由會導致它(它們在其他機器或VM中工作正常。)最終我還有其他問題,需要重新安裝這解決了一切。 - Jim McKeeth
我的路太長了。我刪除了重複項,刪除了無用的條目,問題就消失了。 - Pavel


答案:


我的博客

底線,如果您的PATH環境變量超過2048   字符(和WINDIR)在許多上下文中都不可見。

我通過手動運行來修復它   c:\ windows \ system32 \ systempropertiesadvanced.exe並刪除一個   從我的PATH進入,讓我低於2048個字符。新的cmd窗口工作   正好。

更新:這個 類似的問題 索賠2047是最大的,並詳細闡述了擴展規則


127
2018-01-16 22:21



這就是我解決問題的方法。我手動檢查路徑,使其更短,問題消失了。 - Pavel
為我工作。謝謝! - Jonathan DeCarlo
我剛剛通過重新啟動計算機解決了這個問題...這真的是Windows的愚蠢限制! - Edwin Yip
剛遇到這個問題。真是笑話。謝謝 - SwimBikeRun
正如其他人提到的,在修復PATH之後,如果您不想重新啟動,只需在任務管理器中重啟explorer.exe。請確保您不要通過右鍵單擊任務欄來啟動任務管理器!這樣做將使用提升的路徑初始化任務管理器(因此您的新explorer.exe進程)。通過執行ctrl + shift + escape啟動它 - matrixugly


2048字符限制是真實的。我所做的是將路徑拆分為兩個單獨的變量,並在PATH變量中包含第二個變量:

PATH=C:\;%PATHEXTENDED%
PATHEXTENDED=E:\

就像我沒有刪除任何PATH目錄,但獲得了2048個字符以下的PATH變量。


23
2017-09-05 15:27



好吧,這是天才 - kenwarner
非常聰明,但動態添加PATH條目的應用程序可能會在完全擴展的路徑上運行,並且仍然會瘋狂。但至少痛苦將限定在這個過程中。 - Raven
這對我幫助很大,謝謝! - Zach Leighton
謝謝你這個偉大的想法,但它不幸地在Win7下工作:變量“extpath” - 或者在你的情況下“pathextended” - 沒有被解析..... - Unknown6656
這個解決方案在Win 7中對我不起作用.2個變量的內容被連接起來,但是在第2048個(?)之後的任何字符都從得到的組合PATH變量中截斷。所以我 有 從@Raven中刪除PATH中的條目,以獲取我的圖標和 %windir%等回來。 - snark


解決此問題的任何人的解決方法修復,或者由於過多而導致 path 或者出於任何其他原因:只需重新啟動Explorer。新的shell獲得了一個新的環境。這可以暫時修復損壞,無需重新啟動,即使您尚未能夠識別並永久解決根本原因。

1。

enter image description here

2。

enter image description here

3。

enter image description here

編輯:更新較新版本的Windows。

任務管理器現在只需一步即可完成:

enter image description here


11
2017-07-11 09:03



這不能解決問題。要批評或要求作者澄清,請在帖子下方留言 - 您可以隨時評論自己的帖子,一旦有足夠的評論 聲譽 你將能夠 評論任何帖子。 - Michael K
尊重,我不同意。問題是, Windows 7's PATH and environment variables are corrupted。我的回复提供了一種消除腐敗的方法。這本身就是一個相關的答案,並與其他修復程序結合使用,否則將需要重新啟動。 - Reg Edit
我建議編輯烏鴉的答案並添加你的部分。大多數人只會閱讀接受的答案,如果我理解正確,你的回答大多是對此的補充。 - Michael K
啊,我明白了。不,它與任何正在嘗試的解決方案相關。我已經編輯了我的答案,以便更清楚。 - Reg Edit
這可能比評論更有價值而不是答案。而不是重新啟動他應該結束任務explorer.exe並重新啟動explorer.exe。你的答案解決了他的部分問題 - 這部分“我甚至無法打開系統屬性對話框,在那裡我可以看到環境變量(因為它使用shell變量來啟動它並且它不起作用)。簡而言之,我重啟每一個時間。”但請注意,由於重新啟動後他遇到路徑問題,因此重新啟動時不會再解決他的問題了。 - barlop


你應該得到一個程序來監視註冊表項

用戶變量

HKCU\Environment

機器變量

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

你可能會抓住他們被摧毀的那一刻並縮小它。

還有,時間需要多長時間......啟動後。如果你至少知道它什麼時候會發生,它將有助於縮小範圍。

嘗試安全模式。與它的過程有關, 並檢查事件查看器。


3
2017-11-10 06:09