Ada masalah yang pasti dengan memperluas variabel lingkungan dalam variabel PATH ketika variabel tersebut diperluas ke jalur yang berisi spasi.
Kami membuat variabel tingkat sistem kami sendiri seperti "OUR_ROOT = c: \ MyRoot" dan kemudian menggunakannya dalam sistem PATH seperti "PATH =;% OUR_ROOT% \ bin;" dan itu akan diperluas dengan benar ke "PATH =; c: \ MyRoot \ bin;". Sejauh ini tidak ada masalah.
Tapi, pada Windows 7 (32-bit), saya punya produk menginstal sendiri dan membuat variabel lingkungan sistem seperti ini:
STUDIO_BIN=C:\program files\Company Name\Product Name 10.4\bin
dan itu menambahkannya ke variabel sistem PATH:
PATH=<other path elements>;%STUDIO_BIN%;<more path elements>
Tetapi nilai PATH yang ditunjukkan dalam CMD berisi "% STUDIO_BIN%;" dan bukan jalur yang diperluas. Nilai di My Computer> Properties> Advanced> Env.Vars tetap tidak diperluas juga. Ini berarti saya tidak bisa menjalankan program yang memerlukan DLL di direktori itu.
Dengan hanya mengubah STUDIO_BIN (via My Computer> Properties> Advanced ...> Env Vars) ke nama tanpa spasi yang disematkan:
STUDIO_BIN=C:\ProductName\bin
dan kemudian me-restart jendela CMD, PATH sekarang:
PATH=<other path elements>;C:\ProductName\bin;<more path elements>
Solusi lain adalah cukup mengedit variabel sistem yang Anda gunakan dalam PATH menggunakan My Computer> Properties> Advanced ...> dialog Variabel Lingkungan. Saya mencoba menambahkan karakter dan menghapusnya untuk membuat 'perubahan' dan kemudian OK'd keluar, memulai prompt CMD baru dan PATH TIDAK diperluas dengan benar. Saya kemudian mencoba menghapus bagian dari jalan itu
STUDIO_BIN=C:\Program Files\Company Name
(menghilangkan "Nama Produk 10.4") dan lihat, dan CMD prompt berikutnya menunjukkan PATH dengan STUDIO_BIN diperluas dengan benar!
Anehnya, jika saya masuk kembali dan menambahkan "Nama Produk 10.4" ke STUDIO_BIN (termasuk semua ruang yang awalnya ada sebelum saya mulai mucking dengan itu) dan PATH MASIH diperluas dengan benar.
Terbukti dengan perubahan yang cukup pada isinya, variabel PATH menjalani beberapa pemrosesan ekstra dalam dialog Variabel Lingkungan yang memungkinkannya berfungsi. Pemrosesan yang tidak dilakukan ketika variabel ditambahkan oleh penginstal produk (yang mungkin hanya memodifikasi PATH dalam registri secara langsung).
Saya hampir positif ini adalah masalah dengan XP juga. Itu hanya muncul kembali untuk saya di Windows 7 karena saya sedang menyusun mesin pengembangan baru. Ternyata itu belum diperbaiki oleh Microsoft.
Tampaknya bahkan variabel yang didefinisikan MS seperti% ProgramFiles% tidak akan berkembang dengan benar di PATH.
Halaman ini memberikan jawaban yang mungkin jika Anda mengatur PATH melalui file baris perintah atau. (Lampirkan seluruh perintah setelah SET dalam tanda kutip.) Saya tidak tahu apa installer produk yang saya instal digunakan untuk mengatur variabel lingkungan, tetapi ternyata berkeliling pengolahan apa pun yang diperlukan untuk memperluas jalur dengan spasi.
Jadi - untuk meringkas, Anda dapat:
ubah jalur (dan pindahkan semua file terkait) ke jalur tanpa spasi, atau
sunting variabel yang gagal berkembang dalam dialog Variabel Lingkungan (cukup ubah agar mereka memproses dengan benar - saya tidak yakin berapa banyak yang cukup).