2017-05-24 2 views
-1

Wir haben versucht, aufeinanderfolgende Befehle in einer Eingabeaufforderung mit JAVA auszuführen.Ausführen einer Reihe von Befehlen in einer Befehlszeile, cmd

Process process = runtime.exec("cmd.exe /c start cd c:\\program files (x86) && cd google && cd chrome && cd application"); 

Was ich hoffe ist, dass es tun wird cd c:\\program files (x86) zuerst, dann cd google dann cd chrome dann cd application.

Wenn ich den Code ausführen, öffnet es nur die Cmd und führt den ersten Befehl, der cd c:\\program files (x86) ist.

Ich weiß, Sie können es tun cd c:\\program files (x86)\google\chrome\application, aber ich verwende dies als Test, weil meine tatsächlichen Befehlszeilen sind Client-spezifisch, so dass ich das nicht als Beispiel verwenden kann.

Also im Grunde muss ich nacheinander eine Reihe von Befehlszeilen ausführen.

Antwort

0

in Ihrem Fall nehme ich an, das Problem ist mit dem Shell-Befehl cd c:\\program files (x86). Es ist der Abstand zwischen den Wörtern program, files und (x86) Sie sollten die Zeichenfolge zitieren.

Ich schlage vor, Ihr Befehl zuerst direkt in einer Befehlszeile ausführen und sehen, ob passiert, was Sie wollen:

cmd.exe /c start cd "c:\\program files (x86)" && cd google && cd chrome && cd application 
0

Sie die Saiten qoute und versuchen sollten, diese

Process process = runtime.exec("cmd.exe /c start cd c:\\program%files%(x86) && cd google && cd chrome && cd application"); 
0

start entfernen zu verwenden, . Platzieren Sie "" um alle Pfade. Ersetzen Sie && durch eine Escapezeichen & wie ^& jeweils. Wie:

cmd.exe /C cd /D "C:\Program Files (x86)" ^& cd "google" ^& cd "chrome" ^& cd "application" 

So:

Process process = runtime.exec("cmd.exe /C cd /D \"C:\\Program Files (x86)\" ^& cd \"google\" ^& cd \"chrome\" ^& cd \"application\""); 
Verwandte Themen