我有两个批处理文件PARENT.bat
和CHILD.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
进程将启动。
有人可以帮忙解决这个问题吗?
答案 0 :(得分:2)
调用批处理文件时:
如果您传递的值是静态的,则在父级中:
call "%batchfilepath%" username fred password 12za34xs
(批处理文件中存储的静态密码绝对不安全。)
如果您要传递的值是动态的(已经存储在变量中),请在父级中:
call "%batchfilepath%" username "%userVar%" password "%passVar%"
在子代中,有一行可以检索和分配这些值:
Set "%~1=%~2" & Set "%~3=%~4"
答案 1 :(得分:-1)
我知道大多数人都会不同意我的观点,但是我倾向于通过文件解决此类问题。
您制作了两个文本文件username.txt
和password.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
通过将变量/参数保存在将自动创建和删除的文件中的一种非常简单的方法,将变量/参数从一个批处理文件传递到另一个文件。
希望这会有所帮助。