Informazioni sui valori delle variabili: è possibile utilizzare la maggior parte dei caratteri come valori variabili, compreso lo spazio bianco. Se si utilizzano i caratteri speciali <,>, |, & o ^, è necessario precederli con il carattere di escape (^) o tra virgolette. Se si utilizzano le virgolette, vengono incluse come parte del valore poiché tutto ciò che segue il segno di uguale viene preso come valore.
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds_shelloverview.mspx?mfr=true
Controllare la sezione "Impostazione delle variabili di ambiente".
Informazioni sui nomi delle variabili: a mio parere, per la migliore compatibilità con ogni applicazione, è necessario limitarsi a lettere, numeri, trattino basso (_) e meno (-).
Sono abbastanza sicuro che tutti i caratteri validi POSIX per i file sono ok, ma non ho trovato alcuna prova di ciò.
Per quanto riguarda i nomi nomi delle variabili di cui abbiamo bisogno di accettare anche le parentesi dal %ProgramFiles(x86)%
è un envar noto. Dai miei esperimenti sembra che oltre ai caratteri di lettere e cifre, questi caratteri sono validi _(){}[]$*+-\/"#',;[email protected]!?
e questi caratteri non sono validi %<>^&|=:
.
Non ho eseguito una ricerca esaustiva ma ho appena testato i caratteri non alfanumerici più comuni.
E solo per il gusto di farlo è possibile nominare un envar %_(){}[]$*+-\/"#',;[email protected]!?%
:
C:\>set _(){}[]$*+-\/"#',;[email protected]!?=xyz
C:\>echo %_(){}[]$*+-\/"#',;[email protected]!?%
xyz