我做了什么搞砸了我的 CMD shell? Windows XP Pro,打开 cmd 窗口并执行以下操作:
C:\>set tt = name
C:\>set tt
tt = name
C:\>echo %tt%
%tt%
C:\>echo %time%
14:13:28.67
echo 命令由于某种原因不起作用。我可以很好地回显内置变量。在另一台电脑上尝试了一下,效果符合预期
set
命令不占用空格。正确的语法是:
set tt=name
您在示例中所做的是设置一个环境变量
tt<space>
。考虑到这一点,你可以尝试这个:
echo %tt %
并查看您的输出。
这里得到最多支持的答案,很久以前就被接受了,声称:
“
命令不占用空格。”set
但这是不正确的:
%tt %
变量实际上有效:它可以被设置和引用。 (尽管它令人困惑。)
确实,在我的 Win7 上:
C:\>set os
OS=Windows_NT
C:\>set tt = name
C:\>set tt2= name
C:\>set tt3=name
C:\>set tt
tt = name
tt2= name
tt3=name
我尝试并得到:
C:\>echo "%os%"
"Windows_NT"
C:\>echo "%tt3%"
"name"
C:\>echo "%tt2%"
" name"
C:\>echo "%tt%"
"%tt%"
直观预期的变量
%tt%
未设置。 但是设置了%tt %
:
C:\>echo "%tt %"
" name"
更重要的是,值末尾有一个空格,
set tt4 = name
:
C:\>echo "%tt4 %"
" name "
set
命令不trim()
:
var_name
中。 var_value
中。var_value
末尾的空格包含在其中。另一方面:
var_name
开头的空格不包含在其中,这对于一般命令行参数来说是相当正常的。您是否尝试过设置变量时等号之间没有空格? (设置 tt=名称)
接受的答案在我的 Windows 11 系统中不起作用!
set JAVA_HOME "C:\example"
成功了,并在我使用的命令行中打印结果:
echo $JAVA_HOME