如何将变量值传递给外部bat文件

时间:2015-05-20 17:38:24

标签: batch-file

我需要帮助将批处理文件的变量值传递给另一个批处理文件。

我正在使用这句话:

call vartest.bat 

if %username%==NA (
echo First login detected.

set /p usernameIN= Username:
@echo set username=%usernameIN% > vartest.bat
)

问题在于," usernameIN"不会传递到外部批处理文件。我尝试使用普通文本而不是变量,它可以工作。

有没有办法让这成为可能?

谢谢。

1 个答案:

答案 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