Ms-Dos - Batch que ejecuta todos los archivos de una carpeta cada cierto tiempo.

 
Vista:
sin imagen de perfil

Batch que ejecuta todos los archivos de una carpeta cada cierto tiempo.

Publicado por Isdera (9 intervenciones) el 23/07/2013 12:03:59
He realizado un programa para realizar varias acciones en equipos remotos.

Muchas acciones se pueden mandar por remoto, pero otras no.

Las que no se pueden les mando directamente el archivo bat, para que se ejecute en local.

Para realizar esto necesito un bat que esté funcionando continuamente, y cada cierto tiempo, unos 10 segundos o así, me ejecute todos los bat que hay en una carpeta en concreto, a la que le envío yo los bat remotamente.

He hecho pruebas con los ejemplos de aquí, pero no he conseguido hacerlo…

http://stackoverflow.com/questions/9250567/batch-file-to-execute-all-files-in-a-folder

Alguien podría echarme una mano?

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Batch que ejecuta todos los archivos de una carpeta cada cierto tiempo.

Publicado por Antoni Masana (811 intervenciones) el 24/07/2013 07:35:27
Este ejemplo es para Windows 7.

Abre una ventana de MS-DOS para cada BAT y no espera a que finalice cada ejecución. Se ejecutan todos en paralelo.

1
2
3
4
5
6
@echo OFF
CD /D C:\macros\Day
:Otra_Vez
   FOR %%a in (*.BAT) DO START "Ejecutando... %%a" /MIN  C:\macros\Day\%%a
   TIMEOUT /T 10 /NOBREAK
   GOTO Otra_Vez


En este caso los BAT deben finalizar con un EXIT para que cierren la ventana.


Ejecuta los BAT y espera a que finalice uno para ejecutar el siguiente.

1
2
3
4
5
6
@echo OFF
CD /D C:\macros\Day
:Otra_Vez
   FOR %%a in (*.BAT) DO CALL %%a
   TIMEOUT /T 10 /NOBREAK
   GOTO Otra_Vez


En todos los casos espera 10 segundos y vuelve a empezar

En Windows XP o anterior el TIMEOUT no funciona

No se si esto responde a tu pregunta

Es caso de dura ya me comentaras
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Batch que ejecuta todos los archivos de una carpeta cada cierto tiempo.

Publicado por Isdera (9 intervenciones) el 24/07/2013 07:53:05
Hola, muchas gracias.

Lo necesito para XP.. No hay manera?

De todas formas lo he estado probando sin el Timeout.

En el primer caso me minimiza y maximiza la ventana continuamente.

En el segundo caso me salta este error:

****** B A T C H R E C U R S I O N exceeds STACK limits ******
Recursion Count=576, Stack Usage=90 percent
****** B A T C H PROCESSING IS A B O R T E D ******

Pero en niguno de los casos me ejecuta el batch de ejemplo que he metido en la misma carpeta.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Batch que ejecuta todos los archivos de una carpeta cada cierto tiempo.

Publicado por Antoni Masana (811 intervenciones) el 24/07/2013 09:02:29
En Win XP el problema es hacer la pausa de 10 segundos.

Habia por este foro una opción con el PING

En el primer ejemplo el parametro /MIN deberia (que es mucho suponer) que las ventanas se ejecutan minimizadas, pero si alguno de los comandos que se ejecutan cambia el estado de la ventana puede ocurrir esto.

Tambien es verdad que si se ejecutan varios procesos a las vez se relentiza la ejecución.

En el segundo ejemplo el BAT debe evitar llamarse a si mismo por que entonces entra en un bucle infinito y provoca un error que para ser sincero nunca habia visto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Batch que ejecuta todos los archivos de una carpeta cada cierto tiempo.

Publicado por Isdera (9 intervenciones) el 24/07/2013 09:23:33
Hola,

Ya he conseguido que funcione con la primera opcion.

En vez de TIMEOUT /T 10 /NOBREAK le he puesto sleep 10, que en mi pc tengo el comando metido, si no, como dices, con el truco del ping se puede hacer.

El bat que llama al resto debe estar en otra carpeta.

Y cada 10 segundos me llama a todos los bat de la carpeta, en un bucle infinito.

Muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Batch que ejecuta todos los archivos de una carpeta cada cierto tiempo.

Publicado por [email protected] (7 intervenciones) el 17/12/2014 23:53:17
Tengo una situación similar, tengo x carpetas, en donde cada una hay un x.bat y quiero ejecutar cada bat desde un bat externo.

Cada carpeta se crea automáticamente por otro bat (bat1) y después se copian unos archivos específicos a cada carpeta creada (bat2) y me falta un ultimo bat, (bat3) el que estoy preguntando.


Ejemplo bat2

1
2
@echo off
for /D %%f in ("C:\CARPETAS\*") do copy "C:\x.bat" "%%f\"


MI objetivo final es ejcutar los tres bats desde uno solo.


Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar