Java を使用して、psexec を使用してリモート サーバーでコマンドを実行する大きなバッチ ファイルとやり取りしようとしています。
プロセスビルダーを使用してファイルを起動でき、ほとんどのコマンドで正常に動作しますが、ハングアップしているようです。
バッチ ファイルの 1 つの特定のコマンドは次のとおりです。
ECHO .
Echo Which would you like to reboot?
Echo 1-10. For computers, enter computer number.
Echo E. Exit
set /p userinp=choose a number(0-22):
しかし、Javaから私は得る: . どれを再起動しますか? 1-10。コンピュータの場合は、コンピュータ番号を入力します。E.出口
そしてハングします
明らかに設定された行を読み取っていませんが、さらに重要なことに、入力をサブプロセスに戻す方法をまだ理解していません。
String[] command = {"cmd", "/c", "batchfile", "restart"};
ProcessBuilder builder = new ProcessBuilder(command);
builder.directory(new File("C:\\"));
Process process = builder.start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
任意の入力をいただければ幸いです。