批处理文件集变量不起作用 [英] Batch File Set Variable not working

查看:36
本文介绍了批处理文件集变量不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在 BAT 文件中对变量进行一些简单的设置.它不是设置变量.没有任何奇怪的构造,它是使用相同变量名的简单变量替换.我将 BAT 文件简化为一个简单的概念验证版本:

I'm doing some simple setting of a variable in a BAT file. It's not setting the variable. There aren't any odd constructs, it's simple variable substitution using the same variable name. I reduced the BAT file to a simple proof of concept version:

set TESTVAR = "No Value"
ECHO var = %TESTVAR%
set TESTVAR = ""
ECHO var = %TESTVAR%
set TESTVAR = "New value"
ECHO var = %TESTVAR%

并且输出显示 SET 命令似乎都不起作用.我到底错过了什么.我多年来一直在编写 BAT 文件,但我以前从未见过这种情况.这是运行此测试的输出:

And the output shows that none of the SET commands seem to be working. What the heck am I missing here. I've been writing BAT files for years and I've never seen this before. Here's the output from running this test:

C:Users
s02130Desktop>test

C:Users
s02130Desktop>set TESTVAR = "No Value"

C:Users
s02130Desktop>ECHO var =
var =

C:Users
s02130Desktop>set TESTVAR = ""

C:Users
s02130Desktop>ECHO var =
var =

C:Users
s02130Desktop>set TESTVAR = "New value"

C:Users
s02130Desktop>ECHO var =
var =
C:Users
s02130Desktop>

我希望第一个和第三个 ECHO 命令显示值No Value"和New value".到底是怎么回事?

I expect the first and third ECHO commands to display the values "No Value" and "New value". What the heck is going on?

推荐答案

问题是等号周围的空格.这应该可以满足您的需求.

The problem is the spaces around the equal sign. This should do what you want.

set TESTVAR="No Value"
ECHO var = %TESTVAR%
set TESTVAR=""
ECHO var = %TESTVAR%
set TESTVAR="New value"
ECHO var = %TESTVAR%

这篇关于批处理文件集变量不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆