Saya perlu menambahkan entri baru ke variabel PATH saya. Ini adalah kegiatan umum bagi saya dalam pekerjaan saya, tetapi saya baru-baru ini mulai menggunakan Windows 8. Saya berasumsi prosesnya akan mirip dengan Windows 7, Vista, XP ...
Inilah urutan acara saya:
- Buka properti Sistem (Mulai-> [ketik "Panel Kontrol"] -> Panel Kontrol \ Sistem dan Keamanan \ Sistem -> Pengaturan sistem lanjutan -> Variabel Lingkungan)
- Tambahkan path baru ke awal variabel USER PATH saya (C: \ dev \ Java \ apache-ant-1.8.4 \ bin;)
- Membuka command prompt (Mulai -> [ketik "command prompt" enter] -> [type "path" enter]
Entri jalur baru saya tidak tersedia (lihat gambar dan vide terlampir). Saya menduplikasi proses yang sama persis pada mesin Windows 7 dan berhasil.
EDIT
Variabel Lingkungan Windows 8 dan video Command Prompt
EDIT
Ini jelas bukan perilaku Windows 7. Tonton video ini untuk melihat perilaku yang saya harapkan bekerja di Windows 7. http://youtu.be/95JXY5X0fII
EDIT 5/31/2013
Jadi, setelah frustrasi, saya menulis aplikasi C # kecil untuk menguji WM_SETTINGCHANGE
acara tersebut. Kode ini menerima acara di Windows 7 dan Windows 8. Namun, di Windows 8 di sistem saya, saya tidak mendapatkan jalur yang benar; tapi, saya lakukan di Windows 7. Ini tidak dapat direproduksi di sistem Windows 8 lainnya.
Ini kode C #.
using System;
using Microsoft.Win32;
public sealed class App
{
static void Main()
{
SystemEvents.UserPreferenceChanging += new UserPreferenceChangingEventHandler(OnUserPreferenceChanging);
Console.WriteLine("Waiting for system events.");
Console.WriteLine("Press <Enter> to exit.");
Console.ReadLine();
}
static void OnUserPreferenceChanging(object sender, UserPreferenceChangingEventArgs e)
{
Console.WriteLine("The user preference is changing. Category={0}", e.Category);
Console.WriteLine("path={0}", System.Environment.GetEnvironmentVariable("PATH"));
}
}
OnUserPreferenceChanging
setara dengan WM_SETTINGCHANGE
Program C # berjalan di Windows 7 (Anda dapat melihat acara datang dan mengambil jalur yang benar).
Program C # berjalan di Windows 8 (Anda dapat melihat acara tersebut terjadi, tetapi jalur yang salah).
Ada sesuatu tentang lingkungan saya yang memicu masalah ini. Namun, apakah ini bug Windows 8?
EDIT 2014-04-28
Karena ini dan beberapa masalah lainnya, kami tidak lagi menggunakan Windows 8 di desktop. Kami tidak memiliki lingkungan untuk melanjutkan pengujian dan percobaan dengan masalah ini. Masih belum ada jawaban atau resolusi untuk masalah ini bagi kami. Jawaban di bawah tidak menyelesaikan masalah kami.
cmd
ketika instance baru diluncurkan. Tentu saja yang sudah berjalancmd
tidak mendapatkan lingkungan yang diperbarui.Jawaban:
Jika Anda meluncurkan Command Prompt dari menu mulai atau pintasan di bilah tugas, Anda harus:
explorer
. Bunuh dan luncurkan kembali.explorer
).explorer
).Lingkungan tidak segera diperbarui karena lingkungan diwarisi dari proses induknya, dengan pengecualian
explorer
, yang dimulai oleh sistem saat masuk. Ini adalah bagaimana berperilaku pada sistem Windows 7 saya.Jadi, mengubah Variabel Lingkungan memperbarui kunci registri, tetapi kunci ini tidak dibaca kembali sampai sistem harus membangun lingkungan login baru untuk beberapa proses yang diluncurkan. Sebagian besar waktu, ini tidak terjadi karena proses adalah anak-anak dari suatu proses yang sudah memiliki lingkungan, sehingga lingkungan diwarisi.
sumber
WM_SETTINGCHANGE
pesan.Dari: http://support.microsoft.com/kb/104011 via /server//q/8855/158027
sumber
Masalahnya dengan pengaturan pengguna Anda. Di Window 8, setiap pengguna memiliki variabel lingkungan sendiri.
Pendekatan di atas akan mengedit variabel lingkungan untuk pengguna root, mungkin bukan pengguna Anda saat ini.
Anda harus masuk ke akun pengguna -> pilih akun Anda saat ini -> ubah variabel lingkungan
Setelah berubah, hidupkan kembali shell daya. Kemudian
atau
Semoga ini bisa membantu Anda.
sumber
Coba SETX sebagai gantinya SET. Misalnya
SETX PATH "%PATH%;MyPath"
sumber
SETX
daripadaSET
bekerja.Jika Anda menggunakan Windows 8.1, buka prompt perintah sebagai Administrator, kemudian panggil perintah PATH dan Anda akan melihatnya muncul di sana. Ketika Anda kembali ke cmd normal, itu juga akan muncul. Dan faktanya, Anda harus dapat memulai aplikasi yang ditambahkan dari command prompt.
sumber
Terlambat untuk miliknya. Namun. Anda mungkin menjadi korban dari masalah ini: Variabel pengguna tidak terselesaikan dengan benar di Windows .
sumber
Apakah itu berfungsi jika Anda menggunakan Win + R dari Desktop untuk memulai cmd.exe? Dugaan saya adalah bahwa memulainya dari Layar Mulai menyebabkan induk cmd.exe mulai berbeda dari explorer.exe (WSAHost.exe, IIRC atau apa pun namanya), dan proses induk itu tidak memperbarui lingkungannya selama pesan WM_SETTINGCHANGE pesan. Saya tidak punya mesin Windows 8 untuk menguji ...
sumber