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

时间:2020-02-21 14:25:11

标签: batch-file command-line command command-prompt

我有两个批处理文件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进程将启动。

有人可以帮忙解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

调用批处理文件时:

如果您传递的值是静态的,则在父级中:

call "%batchfilepath%" username fred password 12za34xs

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

如果您要传递的值是动态的(已经存储在变量中),请在父级中:

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

在子代中,有一行可以检索和分配这些值:

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

答案 1 :(得分:-1)

我知道大多数人都会不同意我的观点,但是我倾向于通过文件解决此类问题。

您制作了两个文本文件username.txtpassword.txt,并允许父母对其进行写操作,并允许孩子对其进行读取,然后在完成后将其删除。

它看起来像这样:

父母

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

儿童

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

通过将变量/参数保存在将自动创建和删除的文件中的一种非常简单的方法,将变量/参数从一个批处理文件传递到另一个文件。

希望这会有所帮助。

相关问题