2010-10-11 11 views

Odpowiedz

16

Można polecenia łańcuch w DOSie używając & & np

echo hello&&echo world 
+2

Jeśli pierwsze polecenia nie powiedzie, druga komenda nie będzie działać, jak się wydaje. Próbowałem 'rmdir" C: \ Python "&& mklink/J" C: \ Python "" C: \ Python26 "' i jeśli katalog nie istnieje po raz pierwszy, spowodowałby błąd i przerwał pracę. Zmieniłem go na 'rmdir" C: \ Python "| mklink/J" C: \ Python "" C: \ Python26 "' i działa tak, jak chcę, ale wydaje mi się "niewłaściwy" używać rur w ten sposób. Dla ciebie wygląda na to, że tekst "type in.txt | BatchSubstitute.bat" zastąpi "" tekst do wstawienia "> out.txt" dla plików in.txt i out.txt. Uwaga: rura to '|' (pipe char), a nie 'I' (capital I char). –

+2

@MarkRibau: Być może użyj logicznego lub, tj .: 'echo hello || echo world'? –

+0

@ Protectorone Logiczne lub rzeczywiście działa. Nie przyszło mi do głowy, żeby to zrobić. Jednak drukuje, że pierwsze polecenie zakończyło się niepowodzeniem, podczas gdy z rurą nie. Przypuszczam, że zależy to przede wszystkim od tego, co chcę zobaczyć dla użytkowników skryptu. I widzieli to tylko za pierwszym razem. –

7

Zgodnie pomocy technicznej firmy Microsoft:

To zachowanie występuje, ponieważ separator & & polecenie wykonuje error sprawdzanie. Jeśli polecenie po lewej stronie polecenia & & nie zwróci oczekiwanych wyników , polecenia po prawej stronie polecenia & nie zostaną uruchomione.

I

Podczas korzystania z jednego polecenia &, sprawdzanie błędów nie jest wykonywana i wszystkie polecenia uruchomienia.

można sprawdzić tutaj:

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

Powiązane problemy