Wie kann ich mehrere Befehle in nur einem cmd-Fenster in Java?
was ich tun möchte, ist laufen eine batch
Datei mehrfach von einer java-Anwendung. Daher habe ich ein for-loop
dass dieser code ausgeführt wird n
mal:
for (int i = 0; i < n; i++) {
Runtime.getRuntime().exec("cmd /c start somefile.bat");
}
Das problem ist, dass jetzt jedes mal, wenn der Befehl ausgeführt wird, wird ein neues cmd-Fenster öffnet sich. Jedoch, was ich will, ist nur eine Fenster, das erscheint am Anfang und wird verwendet, um alle Daten anzuzeigen, die aus den folgenden Befehl aufruft.
Wie kann ich das tun?
- Schreiben Sie einen .bat-Datei, ruft die andere .die bat-Datei und dann exec, die.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit && können Sie führen mehr als einem Befehle, einer nach dem anderen:
ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", "command1 && command2"); builder.redirectErrorStream(true); Process process = builder.start(); ... process.getOutputStream() ...
Ich würde Java ProcessBuilder oder einer anderen Klasse, die simuliert/verwendet eine shell. Der folgende Codeausschnitt zeigt, der Idee (für Linux mit der bash).
Bitte beachten Sie, dass es nur ein snippet, welches angepasst werden muss, um für Windows, aber im Allgemeinen sollte es mit
cmd.exe
.