Değişken boşluk içeren bir yola genişlediğinde PATH değişkeni içindeki ortam değişkenlerini genişletmede kesin bir sorun var.
"OUR_ROOT = c: \ MyRoot" gibi kendi sistem seviyesi değişkenlerimizi yarattık ve onu PATH sisteminde "PATH =;% OUR_ROOT% \ bin;" gibi kullandık. ve doğru bir şekilde "PATH =; c: \ MyRoot \ bin;" olarak genişletildi. Şimdiye kadar sorun değil.
Ancak, Windows 7'de (32-bit), bir ürünün kendisini yüklemesini ve bunun gibi sistem ortamı değişkenlerini yaratmasını sağladım:
STUDIO_BIN=C:\program files\Company Name\Product Name 10.4\bin
ve onu sistem PATH değişkenine ekledi:
PATH=<other path elements>;%STUDIO_BIN%;<more path elements>
Ancak CMD'de gösterilen PATH değerleri "% STUDIO_BIN%;" ve genişletilmiş yol değil. Bilgisayarım> Özellikler> Gelişmiş> Env.Vars öğesindeki değer de beklenmeyen şekilde kaldı. Bu, bu dizinde bir DLL gerektiren programları çalıştıramadığım anlamına geliyordu.
Sadece STUDIO_BIN'i (Bilgisayarım> Özellikler> Gelişmiş ...> Env Vars ile) gömülü boşlukları olmayan bir isme değiştirerek:
STUDIO_BIN=C:\ProductName\bin
ve ardından CMD penceresini yeniden başlatarak, PATH şimdi:
PATH=<other path elements>;C:\ProductName\bin;<more path elements>
Başka bir çözüm de Bilgisayarım> Özellikler> Gelişmiş ...> Ortam Değişkenleri iletişim kutusunu kullanarak PATH'ta kullandığınız sistem değişkenini yeterince düzenlemektir. Bir karakter eklemeye ve onu 'değişiklik' yapmak için çıkarmaya çalıştım ve sonra Tamam'ı tıkladım, yeni bir CMD istemi başlattım ve PATH doğru şekilde genişletilmedi. Sonra yolun bir kısmını silmeyi denedim
STUDIO_BIN=C:\Program Files\Company Name
("Ürün Adı 10.4" çıkarılarak) ve görüldüğü gibi, bir sonraki CMD isteminde PATH, STUDIO_BIN ile düzgün şekilde genişletildiğini gösterdi!
Garip bir şekilde, tekrar girip "Ürün Adı 10.4" ü STUDIO_BIN'e ekledim (STUDO_BIN'e orijinal olarak orda olan tüm alanları da dahil ettim), PATH STILL doğru bir şekilde genişletildi.
İçeriğinde yeterince değişiklik olduğu açıkça belli olan PATH değişkeni, Ortam Değişkenleri iletişim kutusunda çalışmasına izin veren bazı ek işlemlerden geçirir. Değişken, ürün yükleyicisi tarafından eklendiğinde yapılan işlem (muhtemelen PATH doğrudan kayıt defterinde değiştirilmiştir).
Neredeyse pozitifim, bu XP'de de bir sorun oldu. Yeni bir geliştirme makinesi oluşturduğum için Windows 7'de benim için yeni ortaya çıktı. Görünüşe göre Microsoft tarafından düzeltilmedi.
Görünüşe göre,% ProgramFiles% gibi MS tanımlı değişkenler bile PATH içinde doğru şekilde genişlemiyor.
Bu sayfa , PATH komut satırı veya toplu iş dosyası üzerinden ayarlanıyorsa olası bir yanıt sunar. (SET komutundan sonra komutun tamamını tırnak işaretleri içine alın.) Kurulduğum ürünün hangi yükleyiciyi ortam değişkenlerini belirlemek için kullandığını bilmiyorum, ancak boşlukları olan yolları düzgün şekilde genişletmek için hangi işlemlerin yapılması gerektiği açıkça belliydi.
Yani - özetlemek için, ya:
yolları değiştir (ve tüm ilişkili dosyaları taşı) boşluk içermeyen yollara
Ortam Değişkenleri iletişim kutusundaki genişletilemeyen değişkenleri düzenleyin (doğru şekilde işlemlerini sağlamak için yeterince değiştirme - ne kadar pozitif olduğumdan emin değilim).