Esiste un problema definito con l'espansione delle variabili di ambiente all'interno della variabile PATH quando la variabile si espande in un percorso che contiene spazi.
Abbiamo creato le nostre variabili a livello di sistema come "OUR_ROOT = c: \ MyRoot" e quindi l'abbiamo usato nel PERCORSO di sistema come "PATH =;% OUR_ROOT% \ bin;" e che viene espanso correttamente in "PATH =; c: \ MyRoot \ bin;". Finora nessun problema.
Ma, su Windows 7 (32 bit), ho installato un prodotto e creato variabili di ambiente di sistema come questa:
STUDIO_BIN=C:\program files\Company Name\Product Name 10.4\bin
e lo ha aggiunto alla variabile PATH di sistema:
PATH=<other path elements>;%STUDIO_BIN%;<more path elements>
Ma i valori PATH mostrati in CMD contenevano "% STUDIO_BIN%;" e non il percorso espanso. Anche il valore in Risorse del computer> Proprietà> Avanzate> Env.Vars non è stato ampliato. Ciò significava che non potevo eseguire programmi che richiedevano una DLL in quella directory.
Semplicemente cambiando STUDIO_BIN (tramite Risorse del computer> Proprietà> Avanzate ...> Env Vars) in un nome senza spazi incorporati:
STUDIO_BIN=C:\ProductName\bin
e quindi riavviando la finestra CMD, il PERCORSO è ora:
PATH=<other path elements>;C:\ProductName\bin;<more path elements>
Un'altra soluzione è modificare sufficientemente la variabile di sistema che si sta utilizzando nel PERCORSO utilizzando la finestra di dialogo Risorse del computer> Proprietà> Avanzate ...> Variabili d'ambiente. Ho provato ad aggiungere un personaggio e rimuoverlo per fare una "modifica" e poi OK, ho avviato un nuovo prompt di CMD e il PERCORSO NON è stato espanso correttamente. Ho quindi provato a cancellare parte del percorso così com'era
STUDIO_BIN=C:\Program Files\Company Name
(omettendo "Nome prodotto 10.4") ed ecco, ed ecco, il prossimo prompt di CMD mostra PATH con STUDIO_BIN correttamente espanso!
Stranamente, se sono tornato indietro e ho aggiunto il "Nome prodotto 10.4" a STUDIO_BIN (compresi tutti gli spazi che erano originariamente lì prima che iniziassi a muck con esso) e PATH era ANCORA correttamente espanso.
Evidentemente con una modifica sufficiente al suo contenuto, la variabile PATH subisce qualche elaborazione aggiuntiva nella finestra di dialogo Variabili d'ambiente che le consente di funzionare. Elaborazione non eseguita quando la variabile è stata aggiunta dal programma di installazione del prodotto (che probabilmente ha appena modificato direttamente il PERCORSO nel registro).
Sono quasi sicuro che questo sia stato un problema anche con XP. È riemerso per me in Windows 7 mentre stavo mettendo insieme una nuova macchina di sviluppo. Apparentemente non è stato corretto da Microsoft.
Apparentemente anche le variabili definite da MS come% ProgramFiles% non si espandono correttamente nel PERCORSO.
Questa pagina fornisce una possibile risposta se si imposta PATH tramite la riga di comando o il file batch. (Racchiudere l'intero comando dopo SET tra virgolette.) Non so quale programma di installazione utilizzato dal prodotto che ho installato per impostare le variabili di ambiente, ma evidentemente ha fatto il giro di qualunque elaborazione sia necessaria per espandere correttamente i percorsi con spazi.
Quindi, per riassumere, puoi:
modificare i percorsi (e spostare tutti i file associati) in percorsi senza spazi, oppure
modifica le variabili che non riescono ad espandersi nella finestra di dialogo Variabili d'ambiente (modificandole abbastanza per farle elaborare correttamente - non sono sicuro di quanto sia abbastanza).