Что мне нужно: чтобы отправить ключ "Enter", когда пакет все еще обрабатывает предыдущую строку.
Я пытаюсь использовать пакетную обработку, чтобы .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));
Что я предпринял:
Мысли?
Если я правильно понимаю цель команды mpiexec, что-то вроде
mpiexec --ppn 20 cmd /c "echo . | myprogram "input%%i.input""
должно сработать.
(Возможно, вам придется немного изменить синтаксис, особенно в отношении вложенных кавычек.)