如何访问在不同的 Windows 批处理文件中设置的变量?

tsu*_*sum 6 windows batch environment-variables batch-file

我有一个 Windows 批处理文件 - 称为 fileA.bat,其中包含一个变量集。fileA.bat 的示例代码:

set fileA_username=michael
Run Code Online (Sandbox Code Playgroud)

现在我有另一个批处理文件,称为fileB.bat,它需要访问fileA.bat 中设置的这个变量。

所以我在 fileB.bat 中编写的代码想要做这样的事情:

set fileB_username = %fileA_username%
Run Code Online (Sandbox Code Playgroud)

然后在脚本代码中继续使用 fileB_username。

FileB 将调用 fileA 作为执行的一部分,如下所示:

文件B中的代码:

---
---
call fileA.bat
---
---
set fileB_username = fileA_username
---
if fileB_username
----
Run Code Online (Sandbox Code Playgroud)

我如何访问在外部批处理文件中设置的变量?谢谢。

Fre*_*ing 8

你在变量名中有一个错字:fielA_usernamevs. fileA_username,否则你的代码是好的。此外,您应该避免在=登录SET命令周围使用漂亮的空格,因为它们将成为变量名称及其值的一部分(尝试:)SET foo=bar && SET foo = bar && SET foo


@REM this is setenv.bat

SET ENV=IRON
Run Code Online (Sandbox Code Playgroud)
@REM and this is "main" script

CALL setenv.bat

@REM append something to the value
SET ENV=%ENV%MENT

REM print the current value
SET ENV
Run Code Online (Sandbox Code Playgroud)


Der*_*ler 4

除非您在批处理文件 A 中显式指定SETLOCAL或取消设置该变量,否则该变量将是全局的并且可供第二个批处理文件访问。

有关详细信息,请参阅为什么在 Windows 批处理文件中卸载变量