取消批处理脚本中 FOR /L 中的 SET
p谁能解释一下为什么 SET 在下面的代码中没有做任何事情?
ECHO OFF
FOR /L %%b IN (-1,1,1) DO (
SET /A _lat=%%b
ECHO variable lat: %_lat%
ECHO variable b: %%b
ECHO:
)
: 输出:
variable lat:
variable b: -1
variable lat:
variable b: 0
variable lat:
variable b: 1
我尝试了没有 /A 的 SET 当然,我在 FOR 中尝试了其中变量 %%b 是来自文件的字符串并且它正常工作,但就在这里当变量 %%b 是一个变化的数字时,它不起作用。
如果您有任何建议,请告诉我。当然,我可以只使用 %%b 来显示我想要的内容,但由于这是较大脚本的一部分,为了使其更具可读性,我想使用适当的变量。
pCan anyone explain why SET is not doing anything in the following code?:
ECHO OFF
FOR /L %%b IN (-1,1,1) DO (
SET /A _lat=%%b
ECHO variable lat: %_lat%
ECHO variable b: %%b
ECHO:
)
output:
variable lat:
variable b: -1
variable lat:
variable b: 0
variable lat:
variable b: 1
I tried SET without /A of course, I tried that within FOR where variable %%b was a string from a file and it worked normally, but just here when variabl %%b is a changing number it does not work.
If you would have any suggestion, please tell me. Of couse I can use just %%b to diplay what I want, but since this is a part of larger scritp, to make it more readable, I would like to but the vaules to approproate variable.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要使用
ENABLEDELAYEDEXPANSION
。尝试使用以下方法:You need to use
ENABLEDELAYEDEXPANSION
. Try with the below:查看控制台中
SET /?
的输出。您需要启用并使用延迟环境变量扩展才能使其正常工作。以下是帮助集
中的相关片段:Take a look at the output of
SET /?
in a console. You need to enable and use delayed environment variable expansion for this to work. Here's the relevant snippet from thehelp set
: