我正在使用java Process
類來執行一些批處理文件。我使用ProcessBuilder
來創建過程,並且此部分運行正常。我的問題是在我正在運行的批處理文件中處理pause
命令。 pause
命令當前掛起批處理的執行,但我需要完成批處理,以便我可以恢復掛起的操作。目前,我開始代碼相當於一個批處理這樣的:從java進程批量跳過暫停命令
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.List;
public class BatchEnter {
public static void main(String[] args) throws Exception {
List<String> params = Arrays.asList(new String[]{"cmd", "/C", "C:/test/test.bat"});
ProcessBuilder builder = new ProcessBuilder(params);
builder.directory(new File("C:/test")).redirectErrorStream(true);
Process p = builder.start();
BufferedReader wr = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while((line = wr.readLine())!=null){
System.out.println(line);
}
p.waitFor();
}
}
我知道,我們可以利用這個"hack"從一個批處理文件跳過pause
命令。但是,我的問題是我無法更改我正在使用的任何批處理文件,也無法添加批處理文件來調用另一批處理,如提供的鏈接。
我想知道是否有一種方法可以指定進程跳過暫停命令?
您可以複製批處理文件,刪除暫停並運行副本。或者你可以發送一個按鍵到過程輸出流(不知道它是否會起作用)。 – assylias
批處理腳本在沒有暫停的情況下完成執行需要多長時間? –
有不同的執行時間的批次。 @assylias如果批處理文件沒有調用其他任何東西,這是一個很好的選擇,但不幸的是並非總是如此。 –