使用批处理在文件之间发送变量

使用批处理在文件之间发送变量

所以我有 2 个 Bat 文件 A 和 B。A 运行,现在我使用命令启动 B。现在 A 和 B 同时运行。现在我想将变量 C 从 A 发送到 B。我尝试了 Call,但它只是打开 B 两次。感谢以后的回答!编辑* 无需其他文件

答案1

setx 命令将变量写入注册表,如果您想对所有批处理文件全局使用一个变量,则可以使用该命令。

SETX VAR_C somevalue

或者,您可以将变量写入文件并将其读回到另一个批处理文件中,即;

批处理文件A:

SET VAR_C=somevalue
ECHO %VAR_C% >%TMP%\var_c

批处理文件B:

SET /P VAR_C=<%TMP%\var_c
ECHO %VAR_C%

答案2

如果你没有使用 Windows 命令提示符,则无法同时运行 a 和 b。即使使用 call 命令A停止并且b运行完成返回A在真正的 DOS 中,在 call 命令之后。

在 Windows 命令提示符中运行时,它们是 2 个完全不同的进程,不共享内存、变量等。

批处理文件的工作方式是使用%1至%9

转移允许使用 10 个或更多的值,方法是将所有内容向下移动 1 并丢失最低值。

因此在 a.bat 中调用 b.bat “scooby doo” “was” “here”

现在在b.bat里面

%1 = "scooby doo"
%2 = "was"
%3 = "here"

选择

命令也存在

设置 C="史酷比"

回显 %c%


来自丑陋、有限和粗俗的部门

mkdir "\share" mkdir "\share\c" 然后在批处理文件中A您可以创建一个名为您想要共享的文件。

注意:在批处理文件中可能需要双百分号。

for  %i in ("c:\x\c\*.*"); do set c="%~ni"

但是,您不能使用相同的特殊字符,例如句点。

相关内容