__Hinweis: Dieser Artikel wurde in der folgenden Umgebung bestätigt. __ __
Angenommen, Sie haben helloworld.bat
in einem Ordner namens C: \ sample
. Der Inhalt ist wie folgt.
helloworld.bat
@echo off
echo Hello World 01
echo Hello World 02
echo Hello World 03
Unten finden Sie ein Beispiel für die Ausführung dieser helloworld.bat
von Java aus.
//Generieren Sie ProcessBuilder
// helloworld.Verbinden Sie stdin und stderr von bat mit stdin und stderr des übergeordneten Prozesses.
var processBuilder = new ProcessBuilder("C:\\sample\\helloworld.bat");
processBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT);
processBuilder.redirectError(ProcessBuilder.Redirect.INHERIT);
//Prozessgenerierung
// helloworld.Führen Sie bat als untergeordneten Prozess aus und stoppen Sie den übergeordneten Thread, bis der Prozess abgeschlossen ist.
var process = processBuilder.start();
process.waitFor();
Wenn Sie dies tun, sollten Sie in der Standardausgabe von Java Folgendes sehen:
Hello World 01
Hello World 02
Hello World 03
__ Persönlich ist der "süchtige" Punkt die Erweiterung der Batch-Datei. Die Erweiterung der Datei, die Sie ausführen möchten, muss bat oder cmd sein. __ __
In der Welt der sogenannten Shell-Skripte gibt es keine Spezifikation für die Erweiterung der Datei, in die das Skript geschrieben ist. Ich denke, dass es üblich ist, "sh" zu verwenden, aber solange Sie die Ausführungsberechtigung haben, können Sie entweder "txt" oder "html" ausführen, und es gibt kein Problem, auch wenn es keine Erweiterung gibt.
Andererseits werden in der Windows-Welt Erweiterungen verwendet, um zu bestimmen, ob eine Datei eine Batchdatei ist. Mit anderen Worten, wenn die Erweiterung bat oder cmd ist, wird diese Datei als ausführbare Batchdatei betrachtet.
Ich war süchtig nach "Ich habe versucht, eine Datei ohne Erweiterung bat oder cmd mit" ProcessBuider "oder" Process "auszuführen, und es hat nicht funktioniert". Ich bin ein sogenannter Open Application Developer. In dieser Welt (dh Linux und Unix) kann die Ausführungsberechtigung, wenn sie korrekt erteilt wurde, unabhängig von der Erweiterung ausgeführt werden. Daher ist es schwierig zu glauben, dass eine bestimmte Erweiterung angegeben werden muss. Ich habe nicht (´ ・ ω ・ `)
Recommended Posts