Ortam değişkenlerimi değiştirdikten sonra Windows cmd kabuğunu nasıl yenileyebilirim?
yani bash sadece "kaynak ~ / .bashrc" yapabilirim
Ortam değişkenlerimi değiştirdikten sonra Windows cmd kabuğunu nasıl yenileyebilirim?
yani bash sadece "kaynak ~ / .bashrc" yapabilirim
Yanıtlar:
Bu gerçekten ortam değişkenlerinizin nasıl ayarlandığına bağlıdır. Örneğin, komut satırında "SET" komutunu kullandıysanız, yalnızca geçerli örneği etkiler. Öte yandan, "SETX" gibi komutlar ortam değişkeninin değerini kalıcı olarak ayarlayacaktır. SETX, gelecekteki tüm cmd örneklerinin güncellemeyi görmesini sağlayacaktır. Yerel çevreyi etkilemez.
Ortam değişkeni başka bir uygulama tarafından ayarlanırsa ve güncelleştirilmiyorsa, "explorer.exe" işlemini yeniden başlatmak, oturumu kapatmak ve yeniden oturum açmak veya yeniden başlatmak genellikle en kolay yoldur . Temel olarak, explorer'a ortam değişkenlerini yeniden yüklemesini söylemeniz yeterlidir. Bir yükleyici gibi geliştirdiğiniz bir uygulama ise, aradığınızdan emin olun SendMessage (HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)"Environment");
. Bu, explorer'a ortam değişkenlerinin önbelleğini yenilemesini söyler.
Bu önemlidir, çünkü başka bir işlem tarafından başlatılan uygulamalar ortam değişkenlerini üst öğelerinden devralır. Bu nedenle, cmd'yi explorer'dan başlatırsanız, explorer'ın gördüğü değişkenleri alırsınız.
Windows'da ana ortamı ayarlamak ve yeniden toplamak, BartPE halkının üzerinde çok zaman harcadığı bir şeydir.
Ana ortam kayıt defterinde saklanır, ancak explorer kabuğu bunu adresine okur. Buradan her cmd.exe oturumuna gönderilir.
SET sadece cmd ortamını etkiler. SETX, ana ortamı değiştirmenize izin verir, ancak ayar yerel ortama yansıtılmaz.
Frank Westlake'in CONSET ve 4NT kayıtları kayıt defterinden alabilir, ancak özellikle ana ortam için anahtar yoktur.
Normal olarak yüklenen pencereler ayarları kayıt defterinde tutarken, minint (yani WinPE) aracılığıyla yüklenen pencereleri kaydetmez. Bu nedenle kayıt defterini ayarlamak ve kayıt defterini okumak her ikisinde de çalışır, ancak yalnızca normal olarak önyüklenen pencereler ayarları görür ve bunları yeni bir cmd, exe programına geçirir.
bu, ortam değişkenlerinizi nereye "ayarladığınıza" bağlıdır. bash örneğinize eşdeğer şu şekilde olur:
dosya: env.bat
set FOO=bar
ve şimdi yeniliyorsun
% call env.bat
ama ben windows-system-settings-iletişim kutusu (ya da adı ne olursa olsun) ile yaptığınızı düşünüyorum. bunun sonucu aslında kayıt defterini değiştirmiş olmanızdır. bu kayıt defteri ayarları, yeni bir işlem başlattığınızda işleme eşlenir.
böylece, yeni bir işlem başlatabilirsiniz (sizin durumunuzda cmd.exe) VEYA istediğiniz değişiklikleri yansıtan kayıt defteri anahtarlarını okuyabilirsiniz. Ayrıca ortam kayıt defterinden alır ve mevcut çevre uyum değiştiren küçük bir .bat / .cmd betiği yazabilirsiniz (ruh bana çarparsa ben bunu öğle yemeğinden sonra yapacağım).
Bu artık önemli ölçüde daha kolay, kabuğu yeniden başlatmaya gerek yok:
RefreshEnv.bat
RefreshEnv.bat
Yeni eklenen ortam değişkenlerinizin yeni bir Command / Powershell örneğinde bulunduğunu ve yenilemeyi doğruladığını gözlemleyin.