2010-10-11 4 views
9

Ich fand die bat-Datei von hier laufen. Ich denke, dass der Code, den die Site bietet, falsch sein muss. Kann mir jemand einen Hinweis geben? Vielen Dank.Wie DOS-Befehl in der Kette

Antwort

16

Sie können Kette Befehle in dos die & & zum Beispiel

echo hello&&echo world 
+2

Wenn die ersten Befehle fehlschlägt, wird der zweite Befehl nicht ausgeführt, so scheint es. Ich versuchte 'rmdir" C: \ Python "&& mklink/J" C: \ Python "" C: \ Python26 "' und wenn das Verzeichnis nicht zuerst existierte, würde es einen Fehler werfen und abbrechen. Ich änderte es in 'rmdir" C: \ Python "| mklink/J" C: \ Python "" C: \ Python26 "' und es funktioniert wie ich will, aber es scheint "falsch" Pipe auf diese Weise zu verwenden. Also, für Sie sieht es aus wie 'type in.txt | BatchSubstitute.bat" Text zu ersetzen "" Text zu setzen "> out.txt' für Dateien in.txt und out.txt wäre was zu verwenden? Note pipe ist '|' (pipe char) nicht 'I' (capital I char). –

+2

@MarkRibau: Vielleicht verwenden Sie die logische oder, zum Beispiel: echo hallo || echo world'? –

+0

@Protectorone Logisch oder funktioniert tatsächlich. Es kam mir gar nicht in den Sinn, das zu tun. Es wird jedoch ausgegeben, dass der erste Befehl fehlgeschlagen ist, während dies bei der Pipe nicht der Fall ist. Ich nehme an, es hängt in erster Linie davon ab, was die Benutzer des Skripts sehen sollen. Und sie würden es nur das erste Mal sehen. –

7

Per Microsoft Support mit: Prüfung

Dieses Verhalten tritt auf, weil der & & Befehlsseparator führt Fehler. Wenn der Befehl links vom & & Befehl die erwarteten Ergebnisse nicht zurückgibt, werden die Befehle rechts vom & Befehl nicht ausgeführt.

Und

Wenn Sie einen einzelnen & Befehl Fehlerüberprüfung nicht durchgeführt wird und alle Befehle ausführen.

Sie können hier überprüfen:

Multiple Commands on a Single Line May Not Run When You Use the && Command Separator