Batch-File
批處理:將“輸入鍵”傳遞給嵌套程序(MPIExec 執行的程序)
我需要什麼:在批處理仍在處理前一行時發送“輸入”鍵。
我正在嘗試使用批處理讓 .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 命令的目的,例如
mpiexec --ppn 20 cmd /c "echo . | myprogram "input%%i.input""
應該管用。
(您可能需要稍微調整語法,尤其是在嵌套引號方面。)