Neden ortam değişkeni yeniden başlatılmadan cmd olarak güncellenmiyor?


2

CMD komutları:

setx SOMEVARIABLE "newpath" /M
setx SOMEVARIABLE "%SOMEVARIABLE%;newpath2" /M

Beklenen çıktı ECHO %SOMEVARIABLE%:

newpath;newpath2

Gerçek çıktı:

%SOMEVARIABLE%

Kaydedilen gerçek değer (Sistem Özelliklerinden-> Çevre Değişkenleri GUI'den):

%SOMEVARIABLE%;newpath2

Beklenen çıktıyı elde etmenin tek yolu, ortam değişkenini her değiştirdiğimde komut istemini yeniden başlatmamdır. Bu işlemi, aynı işlem sırasında birden çok kez ekleyerek çevre değişkenini otomatikleştirmek için kullanıyorum.

  1. Neden ortam değişkeni yeniden başlatılmadan cmd olarak güncellenmiyor?
  2. Komut istemini yeniden başlatmadan,% SOMEVARIABLE% 'nin güncellenmiş değerini almak mümkün müdür?

Yanıtlar:


4

Sorun şu ki , yerel çevreyi değil küresel çevreyisetx değiştiriyor . Bu nedenle, değişikliği almak için komut istemini yeniden başlatmanız gerekir.

İki seçeneğiniz var:

  • Küresel çevreyi ve yerel çevreyi değiştiren farklı bir araç kullanın
  • Her ikisini de yapan ve bunu kullanan bir toplu iş dosyası oluşturun:

    ::setenv.bat
    @echo off
    set %1=%2
    setx %1 %2 %3
    

Bu her zaman doğru değildir. Oldukça sık sık yeniden başlatma gerekir setx:(
UserControl
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.