在Powershell中使用用户输入来调用批处理文件

时间:2019-04-17 13:05:32

标签: powershell batch-file

我需要从Powershell调用elasticsearch-keystore.bat文件。但是,此批次要求用户输入密码。如何通过变量传递它?有一个选项可以从stdin读取设置值,但是我不知道如何在Powershell中使用它。

我尝试过但没有成功:

$password | Invoke-Expression "$elasticsearchFolder\bin\elasticsearch-keystore.bat add --stdin xpack.security.transport.ssl.keystore.secure_password -f"

1 个答案:

答案 0 :(得分:0)

我不得不做一次类似的事情,并在打蝙蝠后传递一些选择。 我通过将选项保存到txt并像bat.bat 这样调用bat来完成此操作

您可以尝试以下方法:

$password>c:\temp\pass.txt
Invoke-Expression "$elasticsearchFolder\bin\elasticsearch-keystore.bat add --stdin xpack.security.transport.ssl.keystore.secure_password -f <c:\temp\pass.txt"
del c:\temp\pass.txt

但是正如Ansgar Wiechers所说,取决于蝙蝠,可能无法与所有蝙蝠一起工作。