经过一番研究,我发现
长度限制
for名称长度为255个字符,for值长度为32767个字符。
但是允许哪些字符
名字
以及允许哪些字符
值
发布于 2013-12-17 21:46:08
关于变量值:可以使用大多数字符作为变量值,包括空格。如果使用特殊字符<、>、|、&或^,则必须在它们前面加上转义字符(^)或引号。如果使用引号,它们将作为值的一部分包括在内,因为等号后面的所有内容都被视为值。
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds
_
shelloverview.mspx?mfr=true
查看“设置环境变量”部分。
关于变量名:在我看来,为了最好地与每个应用程序兼容,您应该限制自己使用字母、数字、下划线(
_
)和减号(-)。
我非常确定文件的所有POSIX有效字符都是正确的,但我没有找到任何证据证明这一点。
关于变量名,我们还需要接受括号,因为
是一位著名的恩瓦尔人。根据我的实验,似乎除了字母和数字字符之外,这些字符也是有效的
并且这些字符无效
..。
我没有做详尽的搜索,只是测试了大多数常见的非字母数字字符。
为了好玩,你可以命名一个envar
C:\>set _(){}[]$*+-\/"#',;.@!?=xyz
C:\>echo %_(){}[]$*+-\/"#',;.@!?%
xyz发布于 2017-02-28 18:03:01
看起来像是
也是有效的字符,只要它们被正确地转义:
C:\>set ^<^>^^^&^|=xyz
C:\>echo %<>^&|%
xyz发布于 2018-07-03 16:54:37
似乎唯一禁止的字符是等号("=")
https://docs.microsoft.com/en-us/windows/win32/procthread/environment-variables
环境变量的名称不能包含等号(=)。
https://stackoverflow.com/questions/20635695
复制相似问题