SORU
5 EKİM 2008, Pazar


Bir komut Windows komut isteminden ortam değişkenleri yenileme var mı?

Ben veya bir ortam değişkeni değiştirmek ekleme komutu (küçük rahatsızlık) yeniden başlatmak zorunda kalıyorum. CMD yeniden başlatmadan bunu yürütmek yapabileceğim bir komut var mı?

CEVAP
5 EKİM 2008, Pazar


Sistem ortamına benzer bir senaryo ile değişkenler yakalayabilirsiniz, ama bu kombine bir çözüm, aslında geçerli ortam değişkenlerini değiştirmek için bir bat komut dosyası gerekir.

Bir dosya bu kodu içeren resetvars.vbs oluşturun ve yolunu kaydedin:

Set oShell = WScript.CreateObject("WScript.Shell")
filename = oShell.ExpandEnvironmentStrings("%TEMP%\resetvars.bat")
Set objFileSystem = CreateObject("Scripting.fileSystemObject")
Set oFile = objFileSystem.CreateTextFile(filename, TRUE)

set oEnv=oShell.Environment("System")
for each sitem in oEnv 
    oFile.WriteLine("SET " & sitem)
next
path = oEnv("PATH")

set oEnv=oShell.Environment("User")
for each sitem in oEnv 
    oFile.WriteLine("SET " & sitem)
next

path = path & ";" & oEnv("PATH")
oFile.WriteLine("SET PATH=" & path)
oFile.Close

başka bir dosya adı resetvars oluşturun.bu kodu içeren bat, aynı konum

resetvars.vbs
call "%TEMP%\resetvars.bat"

Ortam değişkenleri yenilemek istediğinizde, sadece resetvars çalıştırın.bat.


Savunuculuk:

Bu çözüm ile geliyor vardı iki ana sorun vardı

bir.Benzer şekilde, bir komut dosyasından ortam değişkenleri komut istemini geri vermek için basit bir yol bulamadım

b.YOL ortam değişkeni kullanıcı ve sistem PATH değişken bir yapıdır.

Genel kural, kullanıcı ve sistem arasında çakışan değişkenler için ne olduğundan emin değilim, kullanıcı sistemi geçersiz kılmak için, özel olarak işlenmiş olan PATH değişkeninde dışında yapmak için ben seçildim.

Geçici yarasa garip benzer şekilde, yarasa mekanizma benzer şekilde değişkenlere verme soruna geçici bir çözüm bulmak için kullanıyorum.

Notbu komut dosyası değişkenleri silmez.

Bu muhtemelen iyileştirilebilir.

EKLENDİ

Eğer başka bir cmd penceresinden çevreye vermek gerekirse, bu komut (hadi exportvars.vbs arama) kullanın:

Set oShell = WScript.CreateObject("WScript.Shell")
filename = oShell.ExpandEnvironmentStrings("%TEMP%\resetvars.bat")
Set objFileSystem = CreateObject("Scripting.fileSystemObject")
Set oFile = objFileSystem.CreateTextFile(filename, TRUE)

set oEnv=oShell.Environment("Process")
for each sitem in oEnv 
    oFile.WriteLine("SET " & sitem)
next
oFile.Close

Vermek istediğiniz penceresinde exportvars.vbs çalıştırındanvermek istediğiniz . o zaman geçiş yapmak için ^strong>içinve türü:

"%TEMP%\resetvars.bat"

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Rachel Raum

    Rachel Raum

    10 EYLÜL 2007
  • The Pet Collective

    The Pet Coll

    5 Ocak 2012
  • Vintendo Power

    Vintendo Pow

    2 Ocak 2007