繁体   English   中英

在if循环内分配变量:Windows Bat脚本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM