2010-10-11 20 views

Respuesta

16

Puede comandos de cadena en dos utilizando el & & por ejemplo

echo hello&&echo world 
+2

Si los primeros comandos falla, el segundo comando no se ejecutará, según parece. Intenté 'rmdir" C: \ Python "&& mklink/J" C: \ Python "" C: \ Python26 "' y si el directorio no existía primero, arrojaría un error y abortaría. Lo cambié a 'rmdir" C: \ Python "| mklink/J" C: \ Python "" C: \ Python26 "' y funciona como quiero, pero parece "incorrecto" usar pipe de esta manera. Entonces, para usted, parece que el texto 'type in.txt | BatchSubstitute.bat '' reemplazará '' text to put '> out.txt' para los archivos in.txt y out.txt ¿qué usará? Note pipe es '|' (pipe char) no 'I' (mayúscula I char). –

+2

@MarkRibau: Tal vez use la lógica o, es decir: 'echo hello || echo world'? –

+0

@Protectorone Lógico o de hecho funciona. No se me ocurrió que hiciera eso. Sin embargo, se imprime que el primer comando falló, mientras que con el conducto no funciona. Supongo que depende principalmente de lo que quiero que vean los usuarios del script. Y solo lo verían la primera vez. –

7

Según soporte técnico de Microsoft:

Este comportamiento se debe a que el separador & & comando realiza la comprobación de errores . Si el comando a la izquierda del comando & & no vuelve los resultados esperados, los comandos a la derecha del comando & & hacer no se ejecutan.

Y

Cuando se utiliza un solo comando &, la comprobación de errores no se realiza y todas las órdenes de marcha.

Puede comprobar aquí:

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

Cuestiones relacionadas