PATH dan variabel lingkungan Windows 7 rusak

97

Saya tidak tahu, tetapi akhir-akhir ini saya mengalami masalah ini. Setelah menjalankan workstation saya tiba-tiba sesuatu menghancurkan PATH dan banyak hal berhenti bekerja. Awalnya, jalur saya memiliki banyak direktori terdaftar (saya menggunakan Windows 7 sebagai kotak pengembangan) dan setelah beberapa waktu, saya hanya memiliki 3-4 direktori yang terdaftar di jalur kiri saya.

Saya bahkan tidak bisa membuka dialog System Properties di mana saya bisa melihat variabel lingkungan (karena menggunakan variabel shell untuk memulainya dan tidak berfungsi). Singkatnya, saya reboot setiap kali.

Adakah ide yang dapat menyebabkan masalah itu? Saya tidak menjalankan sesuatu yang baru / tidak biasa belakangan ini. Hanya VmWare (tapi saya sudah menggunakannya di masa lalu dan tidak memiliki masalah saat itu).

Saya baru saja memeriksa, bahkan %WINDIR%tidak didefinisikan. WTF ?!

Pavel P
sumber
2
Saya baru-baru ini memiliki masalah yang sama pada kotak Vista 64-bit saya. Tanpa sebab yang jelas, jika saya membuka prompt perintah baru, maka variabel path diatur ke bagian path yang didefinisikan dalam "Variabel pengguna". Bagian "System variable" dari path tidak ada. Beberapa, tetapi tidak semua variabel sistem tidak terdefinisi. Registri terlihat OK, dan semuanya terlihat OK dalam dialog System Properties (menggunakan "c: \ windows \ system32 \ systempropertiesadvanced.exe"). Setelah reboot, sistem berfungsi secara normal. Masalah terulang kembali setiap beberapa hari. Pemindaian virus lengkap tidak menemukan apa pun.
Lee
Saya memiliki masalah yang sama. Saya menemukan beberapa hal berbeda yang memicu (menjalankan program tertentu, menjalankan installer, dll.) Tetapi tidak ada alasan yang menyebabkannya (mereka bekerja dengan baik pada mesin lain atau dalam VM.) Akhirnya saya memiliki masalah lain yang mempersulit perlunya menginstal ulang yang memperbaiki segalanya.
Jim McKeeth
4
jalan saya terlalu panjang. Saya menghapus duplikat, menghapus entri yang tidak berguna dan masalah hilang.
Pavel P

Jawaban:

127

Dari blog saya

Intinya, jika variabel lingkungan PATH Anda lebih dari 2048 karakter, maka (dan WINDIR) berhenti terlihat dalam banyak konteks.

Saya memperbaikinya dengan secara manual menjalankan c: \ windows \ system32 \ systempropertiesadvanced.exe dan menghapus satu entri dari PATH saya untuk menempatkan saya di bawah 2048 karakter. Jendela cmd baru berfungsi dengan baik.

Pembaruan: Pertanyaan serupa ini mengklaim 2047 adalah maks, dan menguraikan aturan ekspansi

Gagak
sumber
2
Saya baru saja memperbaiki masalah dengan me-restart komputer ... Itu benar-benar batas Windows yang bodoh!
Edwin Yip
3
Baru saja mengalami masalah ini. Benar-benar lelucon. Terima kasih
SwimBikeRun
3
Seperti yang disebutkan orang lain, setelah memperbaiki PATH Anda, cukup restart explorer.exe di task manager jika Anda tidak ingin reboot. Pastikan Anda TIDAK meluncurkan pengelola tugas dengan mengklik kanan bilah tugas! Melakukan hal itu akan menginisialisasi task manager dengan jalur mendongkrak (dan karenanya proses explorer.exe baru Anda). Luncurkan dengan melakukan ctrl + shift + escape
C. Tewalt
1
Terima kasih untuk ini. Saya berjuang ini selama sekitar sebulan terakhir ketika produk Sony meningkatkan jalur saya sekitar 200 karakter.
Michael Dorgan
1
Apa yang saya lakukan selain apa yang diusulkan Raven: ganti dir basis umum seperti c:\program files (86)dalam variabel path dengan variabel lain seperti misalnya PRGX86menunjuk ke file program dir. Dengan begitu Anda dapat menyimpan beberapa karakter tambahan.
ovm
23

Batasan karakter 2048 adalah nyata. Apa yang saya lakukan adalah membagi path menjadi dua variabel terpisah dan memasukkan variabel kedua dalam variabel PATH:

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

Seperti itu saya tidak perlu menghapus direktori PATH tetapi mendapatkan variabel PATH di bawah 2048 karakter.

Darth Vader
sumber
2
ok itu cukup jenius
kenwarner
1
Sangat pintar, tetapi aplikasi yang secara dinamis menambahkan entri PATH kemungkinan akan beroperasi di jalur yang diperluas sepenuhnya dan masih akan menjadi gila. Tetapi setidaknya rasa sakit akan mencakup proses itu.
Raven
Terima kasih atas Ide hebat ini, tetapi sayangnya tidak bekerja di bawah Win7: variabel "extpath" - atau dalam kasus Anda "pathextended" - tidak diuraikan .....
unknown6656
2
Solusi ini tidak berfungsi untuk saya di Win 7. Isi dari 2 variabel disatukan, tetapi setiap karakter setelah 2048 (?) Terpotong dari variabel PATH gabungan yang dihasilkan. Jadi saya harus menghapus entri dari PATH pada akhirnya, sesuai @Raven, untuk mendapatkan ikon saya dan %windir%, dll untuk kembali.
snark
12

Perbaikan solusi bagi siapa saja yang mencoba menyelesaikan masalah ini, baik karena pathalasan yang berlebihan atau karena alasan lain: cukup restart Explorer. Shell baru mengambil lingkungan baru. Ini memperbaiki korupsi untuk saat ini, tanpa harus reboot, bahkan jika Anda belum dapat mengidentifikasi dan menyelesaikan secara permanen penyebab yang mendasarinya.

1.

masukkan deskripsi gambar di sini

2.

masukkan deskripsi gambar di sini

3.

masukkan deskripsi gambar di sini

EDIT: perbarui untuk versi Windows yang lebih baru.

Task Manager sekarang melakukannya dalam satu langkah:

masukkan deskripsi gambar di sini

Sunting Reg
sumber
Ini tidak memberikan jawaban untuk pertanyaan itu. Untuk mengkritik atau meminta klarifikasi dari penulis, tinggalkan komentar di bawah posting mereka - Anda selalu dapat mengomentari posting Anda sendiri, dan setelah Anda memiliki reputasi yang cukup Anda akan dapat mengomentari posting apa pun .
Michael K
Dengan hormat, saya tidak setuju. Pertanyaannya adalah Windows 7's PATH and environment variables are corrupted,. Tanggapan saya menyediakan cara untuk menghilangkan korupsi itu. Ini adalah jawaban yang relevan baik dengan caranya sendiri, dan dalam hubungannya dengan perbaikan lain setelah itu reboot akan diperlukan.
Reg Edit
Saya akan menyarankan untuk mengedit jawaban Ravens dan menambahkan bagian Anda ke dalamnya. Kebanyakan orang hanya akan membaca jawaban yang diterima dan jika saya mengerti dengan benar, sebagian besar jawaban Anda adalah tambahan untuk itu.
Michael K
Ah, begitu. Tidak, ini relevan dengan solusi apa pun yang dicoba. Saya telah mengedit jawaban saya untuk membuatnya lebih jelas.
Reg Edit
1
ini mungkin lebih berharga sebagai komentar daripada jawaban. Bahwa alih-alih restart, ia harus mengakhiri tugas explorer.exe dan restart explorer.exe. Jawaban Anda mengatasi sebagian masalahnya - bagian ini "Saya bahkan tidak bisa membuka dialog System Properties di mana saya bisa melihat variabel lingkungan (karena menggunakan variabel shell untuk memulainya dan tidak berfungsi). Singkatnya, saya reboot setiap waktu." Tetapi perhatikan bahwa karena ia memiliki masalah jalur setelah memulai ulang, ini tidak akan memperbaiki masalahnya lagi dibandingkan dengan memulai kembali.
barlop
3

Anda harus mendapatkan program untuk memonitor kunci registri

variabel pengguna

HKCU\Environment

dan

variabel mesin

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

Anda mungkin menangkap saat mereka dihancurkan dan mempersempitnya.

juga, berapa lama ... setelah bootup. jika Anda setidaknya bisa tahu kapan itu akan terjadi itu akan membantu mempersempit segalanya.

coba safe mode juga. memetikannya terkait proses, dan periksa penampil acara.

barlop
sumber