如何响应Windows命令行提示符?

时间:2014-08-12 00:50:40

标签: perl batch-file

我正在尝试编写一个Windows批处理文件来执行一个工作正常的程序。但是,执行的程序(.exe)会停止并要求用户在继续之前输入Yes

有没有办法可以自动将Yes发送到控制台应用程序?

我写的代码是通过这个特定的可执行文件传递大约2,000个文件,并且每个文件都要求Yes响应继续。

我尝试过使用echo Yes。我已经尝试过睡眠,然后回复Yes,但这些都不起作用。还有其他办法吗?

您应该知道Windows批处理文件实际上是由Perl脚本编写的。 Perl脚本获取文件列表,构造所需的命令行命令,然后通过命令行重定向将它们输出到.bat文件。然后手动执行此.bat文件。我的Perl代码是:

$inFile = 'fileList.txt';
$key = '"-----BEGIN RSA PRIVATE KEY-----"';

open(IN, "< $inFile");
while (<IN>) {
  chop();
  printf ("RunMe.exe --key %s \"%s\"\n",$key,$_);
  printf("del \"%s.bak\"\n",$_);
}
close(IN);

向我们提供有关如何实现这一目标的建议。

1 个答案:

答案 0 :(得分:0)

['yes'命令]将无限期地回应'y'(或你提出的任何问题)。用它作为:

'yes | command-that-asks-for-input'

或者,如果需要资本'Y':

'yes Y | command-that-asks-for-input'