windows - script - for f tokens ejemplos
Ejecutando mĂșltiples comandos desde un script cmd de Windows (8)
Intento escribir un script cmd de Windows para realizar varias tareas en serie. Sin embargo, siempre se detiene después del primer comando en el script.
El comando que detiene después es una compilación maven (no estoy seguro si eso es relevante).
¿Cómo hago que continúe y ejecute cada tarea a su vez, por favor?
Instalar cualquier software o configurar el registro, etc., está completamente fuera de discusión; me temo que tiene que funcionar en una instalación vanida de Windows XP.
Idealmente, me gustaría que el script se cancelara si fallara alguno de los comandos, pero eso es "agradable de tener", no esencial.
Gracias.
Acabo de realizar la misma tarea (ish) de crear un script por lotes para ejecutar scripts de prueba Maven. El problema es que llamar maven scrips con mvn clean install ... es en sí mismo una secuencia de comandos y, por lo tanto, debe hacerse con la instalación de call mvn clean.
Código que funcionará
rem run a maven clean install
cd C:/rbe-ui-test-suite
call mvn clean install
rem now run through all the test scripts
call mvn clean install -Prun-integration-tests -Dpattern=tc-login
call mvn clean install -Prun-integration-tests -Dpattern=login-1
Tenga en cuenta más bien el uso de la llamada. Esto permitirá el uso de scripts maven consecutivos en el archivo por lotes.
Cuando llamas a otro archivo .bat, creo que necesitas "llamar" al frente de la llamada:
call otherCommand.bat
El uso de dobles ampersands ejecutará el segundo comando, solo si el primero tiene éxito:
cd Desktop/project-directory && atom .
Donde como, usando solo un signo & intentará ejecutar ambos comandos, incluso si el primero falla:
cd Desktop/project-directory & atom .
No conozco la respuesta directa a su pregunta, pero si hace muchas de estas secuencias de comandos, podría valer la pena aprender un lenguaje más potente como perl. Existen implementaciones gratuitas para Windows (por ejemplo, activestate, cygwin). He encontrado que vale la pena el esfuerzo inicial para mis propias tareas.
Editar:
Según lo sugerido por @Ferruccio, si no puede instalar software adicional, considere vbscript y / o javascript. Están integrados en el host de scripting de Windows.
No estoy seguro de por qué se detiene el primer comando. Si puedes hacerlo paralelo, puedes intentar algo como
start cmd.exe /C 1.bat
start cmd.exe /C 2.bat
Puede usar el símbolo && entre comandos para ejecutar el segundo comando solo si el primero tiene éxito. Más información aquí http://commandwindows.com/command1.htm
Si está ejecutando en Windows, puede usar el siguiente comando.
Manejar:
cd "Script location"
schtasks /run /tn "TASK1"
schtasks /run /tn "TASK2"
schtasks /run /tn "TASK3"
exit
Tenga en cuenta que no necesita punto y coma en los archivos por lotes. Y la razón por la que necesita usar la llamada es que mvn es un archivo por lotes y los archivos por lotes necesitan llamarse entre ellos, de lo contrario el control no regresa a la persona que llama.