我需要帮助将批处理文件的变量值传递给另一个批处理文件。
我正在使用这句话:
call vartest.bat
if %username%==NA (
echo First login detected.
set /p usernameIN= Username:
@echo set username=%usernameIN% > vartest.bat
)
问题在于," usernameIN"不会传递到外部批处理文件。我尝试使用普通文本而不是变量,它可以工作。
有没有办法让这成为可能?
谢谢。
答案 0 :(得分:0)
如果要使用在同一块中更改的变量,则需要延迟扩展(块是括号内的一系列命令(和))
setlocal enabledelayedexpansion
call vartest.bat
if %username%==NA (
echo First login detected.
set /p usernameIN= Username:
@echo set "username=!usernameIN!" > vartest.bat
)
此外,您应该使用set "var=value"
来避免变量中出现意外空格。
有关延迟扩展的简短演示,请参阅here。