如何使用父批处理文件的参数调用子批处理文件?

How do I call a child batch file with arguments from parent batch file?

我有两个批处理文件 PARENT.batCHILD.bat

父文件脚本是

CALL CHILD.bat -username siva -password test1234

CHILD 文件作业正在启动自动化。我们需要传递 CHILD.bat 的参数。例如,如果我们单独执行 CHILD.bat 那么我们需要调用

CHILD.bat -username siva -password tet1234

但我想将 PARENT.bat 文件中的用户名和密码值传递给 CHILD.bat 批处理,然后 CHILD.bat 进程将开始。

谁能帮忙解决这个问题?

我知道大多数人会不同意我的看法,但我倾向于使用文件来解决此类问题。

您制作了两个文本文件,username.txtpassword.txt,并允许 parent 写入它们,并允许 child 从中读取,然后在完成后删除文件。

看起来像这样:

PARENT

echo siva > username.txt
echo test1234 > password.txt
start child.bat

CHILD

for /f "tokens=* delims=" %%x in (username.txt) DO set username=%%x
for /f "tokens=* delims=" %%x in (password.txt) DO set password=%%x
del username.txt
del password.txt

将 variables/parameters 从一个批处理文件传递到另一个批处理文件的非常简单的方法,方法是将它们保存在将自动创建和删除的文件中。

希望对您有所帮助。

调用批处理文件时:

如果您传递的值是静态的,在 parent:

call "%batchfilepath%" username fred password 12za34xs

(存储在批处理文件中的静态密码绝不安全。)

如果您传递的值是动态的(已存储在变量中),在 parent:

call "%batchfilepath%" username "%userVar%" password "%passVar%"

在 child 中,有一行用于检索和分配这些值:

Set "%~1=%~2" & Set "%~3=%~4"