回答

13

關於變量值:可以將大多數字符用作變量值,包括空格。如果使用特殊字符<,>,|,&或^,則必須在它們前面加上轉義字符(^)或引號。如果使用引號,則將它們作爲值的一部分包含在內,因爲等號後面的所有內容都被視爲該值。

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds_shelloverview.mspx?mfr=true

檢查節 「設置環境變量」。

關於變量名:在我看來,對於每一個應用程序兼容性最好,你應該限制自己的字母,數字,下劃線(_)和減號( - )。

我敢肯定,對於文件的所有POSIX有效字符都OK,但我沒有發現這樣的證據。


關於我們還需要接受括號因爲%ProgramFiles(x86)%變量名名是一個衆所周知的ENVAR。從我的實驗看來,除了字母和數字字符之外,這些字符是有效的_(){}[]$*+-\/"#',;[email protected]!?,這些字符無效%<>^&|=:

我沒有做一個詳盡的搜索,但只是測試最常見的非字母數字字符。

而只是爲了好玩,你可以命名一個ENVAR %_(){}[]$*+-\/"#',;[email protected]!?%

C:\>set _(){}[]$*+-\/"#',;[email protected]!?=xyz 

C:\>echo %_(){}[]$*+-\/"#',;[email protected]!?% 
xyz 
0

好像<>^&|也是有效的字符,只要它們被正確地轉義:

C:\>set ^<^>^^^&^|=xyz 

C:\>echo %<>^&|% 
xyz 
相關問題