我在BAT文件中做一些简单的变量设置.它不是设置变量.没有任何奇怪的结构,它是使用相同变量名的简单变量替换.我将BAT文件简化为一个简单的概念证明版本:
set TESTVAR = "No Value"
ECHO var = %TESTVAR%
set TESTVAR = ""
ECHO var = %TESTVAR%
set TESTVAR = "New value"
ECHO var = %TESTVAR%
Run Code Online (Sandbox Code Playgroud)
并且输出显示没有SET命令似乎正在工作.我到底错过了什么.我多年来一直在写BAT文件,我以前从未见过这个.这是运行此测试的输出:
C:\Users\rs02130\Desktop>test
C:\Users\rs02130\Desktop>set TESTVAR = "No Value"
C:\Users\rs02130\Desktop>ECHO var =
var =
C:\Users\rs02130\Desktop>set TESTVAR = ""
C:\Users\rs02130\Desktop>ECHO var =
var =
C:\Users\rs02130\Desktop>set TESTVAR = "New value"
C:\Users\rs02130\Desktop>ECHO var =
var =
C:\Users\rs02130\Desktop>
Run Code Online (Sandbox Code Playgroud)
我希望第一个和第三个ECHO命令显示"无值"和"新值"值.到底他妈发生了什么?
我用set命令在cmd中设置了一个变量,然后尝试了echo.
这是一个例子:
C:\Users\Logan>set var = text
C:\Users\Logan>set var
var = text
C:\Users\Logan>echo %var%
%var%
C:\Users\Logan>
Run Code Online (Sandbox Code Playgroud)
有没有办法强制cmd echo变量而不是原始文本?