【问题标题】:Passing inputs to program prompt in a batch file在批处理文件中将输入传递给程序提示
【发布时间】:2017-05-10 14:35:04
【问题描述】:

我正在使用 mpich2 并行运行模拟。我的工作站具有相当严格的安全性,每次运行模拟时都必须使用新密码进行注册。我必须输入:

mpiexec -register

然后提示我输入用户名,然后提示我输入密码。不幸的是,似乎没有办法在一行上将用户/密码传递给 mpiexec,例如

mpiexec -register user:pass

不工作。

我正在尝试准备一个批处理文件,该文件可以自动将用户名和密码传递给 mpiexec 提示,但我似乎无法让它工作。我已经尝试过各种方法,例如timeout /t 5,但这不起作用。

谁能告诉我如何将这些输入传递给批处理文件中的 mpiexec 程序提示?

谢谢!

编辑:我想我越来越近了。我试过了

(
echo username 
echo password 
echo password 
) | mpiexec -register

这似乎将用户名和密码输入传递给 mpiexec 提示。然而,程序仍在下一步中挂起 - 不确定这是否是我通过这些的方式的问题。

【问题讨论】:

  • 试试这个((echo user)& (echo pass)) | mpiexec -register。但这仅在 mpiexec 从 stdin 读取时才有效
  • 嘿,杰布,谢谢!我不确定标准输入是什么。我会试一试,但它与我上面输入的 EDIT 不同吗?谢谢!

标签: windows batch-file command-line cmd


【解决方案1】:

您可以重定向或通过管道进入mpiexec
使用重定向时,用户/密码条目会有些麻烦,因为行尾通常会出现不需要的(和不可见的)空格。

(
echo user
echo pwd
) | more > fetch.txt

fetch.txt中创建

用户<space>
密码<space>

当您想抑制空格时,请改用文件重定向

(
echo user
echo pwd
) > file.tmp
< file.tmp mpiexec -register

在这两种情况下(重定向或管道),您需要为程序提供所有输入,而不仅仅是用户名和密码。
您不能再从键盘输入输入。

【讨论】:

    猜你喜欢
    • 2013-09-29
    • 2019-01-04
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多