【发布时间】:2025-12-25 21:25:12
【问题描述】:
我正在对 BAT 文件中的变量进行一些简单的设置。它没有设置变量。没有任何奇怪的结构,它是使用相同变量名的简单变量替换。我将 BAT 文件简化为简单的概念证明版本:
set TESTVAR = "No Value"
ECHO var = %TESTVAR%
set TESTVAR = ""
ECHO var = %TESTVAR%
set TESTVAR = "New value"
ECHO var = %TESTVAR%
输出显示 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>
我希望第一个和第三个 ECHO 命令显示值“无值”和“新值”。到底是怎么回事?
【问题讨论】:
-
没有人说过,你应该在 Testvar 和等号之间放置空格。
-
不确定,但可能需要
EnableDelayedExpansion -
等号周围的空格
...我知道这真的很愚蠢。谢谢。 -
我刚刚做了同样该死的事情。多么愚蠢。
标签: variables batch-file set