我需要什么:在批处理仍在处理前一行时发送“输入”键。
我正在尝试使用批处理让 .exe 通过一系列输入文件运行。下面的批处理文件运行一个程序,创建一个输出文件,复制它,然后清理文件夹以运行下一组输入变量。
问题是运行 .exe 后,它显示“按 Enter 继续”。
@if (@CodeSection == @Batch) @then
set SendKeys=CScript //nologo //E:JScript "%~F0"
for %%i IN (1,2,3) do (
mpiexec --ppn 20 myprogram "input%%i.input"
%SendKeys% "{ENTER}"
xcopy "D:\Original\input%%i-*" "D:\Output\output%%i-*"
clean.bat
)
pause
goto :EOF
@end
// JScript section
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0));
我尝试了什么:
- 在“myprogram”之后使用sendkeys,结果:程序仍然需要输入。
- 在“myprogram”之前使用sendkeys,结果:程序仍然需要输入。
- 将 sendkeys 与“ping”结合使用。延迟发生在程序之前或之后,所以没有用。
- 尝试在 sendkeys 命令中“管道”。出错了。
想法?
如果我正确理解 mpiexec 命令的目的,例如
应该管用。
(您可能需要稍微调整语法,尤其是在嵌套引号方面。)