tokens script programacion for ejemplos ejecutar desde comandos comando batch bat archivos windows batch-file scripting cmd

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



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.