[英]Assigning a variable inside if loop : Windows Bat script
我正在尝试编写蝙蝠脚本,并遇到以下问题。
以下是解决该问题的代码段。
setlocal enabledelayedexpansion enableextensions
@echo off
@echo:
echo Select an option:
echo *****************
@echo:
echo 1) process 2gen files
@echo:
echo 2) process 3gen files
@echo:
set /p option=Enter option number : %=%
set fileName=nil
echo %option%
if %option% == 1 (
set fileName = 2gen
echo !fileName!
)
echo !fileName!
该bat脚本的输出如下:
Select an option:
*****************
1) process 2gen files
2) process 3gen files
Enter option number : 1
1
nil
nil
我期望fileName的回显具有值2gen
但它仍在打印nil
在我的第一次尝试中,我没有使用setlocal enabledelayedexpansion enableextensions
和!fileName!
(而不是使用%fileName%
)
搜索解决方案后启用延迟扩展。 但是仍然无法获得确切的错误。
另外,使用的操作系统版本是Windows 7 64 bit
请帮助我指出错误。
谢谢!
set fileName = 2gen
将名为filename<space>
的变量设置为值<space>2gen
。 摆脱空间。 更好的是,使用以下推荐的语法:
set "variable=value"
避免意外的尾随空格。
(当然,您可以使用echo !filename !
...)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.