Pausar la ejecución de mi batch

ProtecTueur Mensajes publicados 24 Fecha de registro   Estado Miembro -  
ProtecTueur Mensajes publicados 24 Fecha de registro   Estado Miembro -
Hola,

Entonces tengo otro problema en mi línea de código, presento mi tema con un título más apropiado.

 @echo off cls MD "C:\WINDOWS\SYSTEM32\TEST" 'Esto crea el directorio / carpeta TEST. FOR /F %%a in ('DIR /b *.bat') DO MOVE "%%a" "C:\WINDOWS\SYSTEM32\TEST" Esto mueve mspaintboucle.bat que es este batch dentro del directorio creado echo "@echo off">nuevo.bat echo cls>>nuevo.bat echo start mspaint>>nuevo.bat Esto tendrá como consecuencia la creación del archivo "nuevo.bat" que ejecutará en bucle mspaint con la siguiente línea :boucle start C:\WINDOWS\SYSTEM32\TEST\nuevo.bat goto boucle PAUSE


Sin embargo, mi problema es que el programa crea el directorio "TEST", mueve el mspaintboucle.bat que lo creó (el directorio TEST), pero tengo que ir a "C:\WINDOWS\SYSTEM32\TEST\" para volver a hacer clic en el mspaintboucle.bat para ejecutar esto:

 echo "@echo off">nuevo.bat echo cls>>nuevo.bat echo start mspaint>>nuevo.bat Esto tendrá como consecuencia la creación del archivo "nuevo" que ejecutará en bucle mspaint con la siguiente línea :boucle start C:\WINDOWS\SYSTEM32\TEST\nuevo.bat goto boucle


Porque no habrá creado el "nuevo.bat", pero al volver a hacer clic en él, se creará y comenzará el bucle.
Mi problema es que tengo que hacer clic 2 veces en el mspaintboucle.bat, la primera en mi escritorio y la segunda en el directorio que creó para poder crear "nuevo.bat" y hacerlo en bucle, me gustaría evitar el doble clic y que se ejecute con un solo clic. ¿Es porque "nuevo.bat" no tiene tiempo de crearse, así que la aplicación se termina antes de poder crearlo? Y entonces, si es así, me gustaría saber cómo hacer una pausa entre la creación de "nuevo.bat" y el bucle para que tenga tiempo de crearse, o si hay un error en mi código que hace que sea imposible de realizar. En este caso, cualquier ayuda sería bienvenida.
Configuración: Windows XP Firefox 2.0.0.14

13 respuestas

guy2mars Mensajes publicados 210 Estado Miembro 71
 
¿Poner un temporizador???
Parece que es posible en todos los lenguajes
Debería sacar mi libro de DOS ;o))
0
ProtecTueur Mensajes publicados 24 Fecha de registro   Estado Miembro 7
 
Sí, en general, pero ¿está correcto mi código? Aparte del temporizador.
0
uToPiuM
 
sí, parece más o menos correcto, para el temporizador, busca un poco, te doy la respuesta en 10 minutos :)
0
uToPiuM
 
bueno, vamos:
set /A heurfin=%time:~6,2%+X
:inicio
set /a heur=%time:~6,2%
set /a temprestant=%heurfin%-%heur%
if "%heurfin%"=="%heur%" goto finpause
goto inicio
:finpause
0
guy2mars Mensajes publicados 210 Estado Miembro 71
 
puré de goto... me faltan los go sub y estará completo
... me recuerda mis primeras horas de informática...
las de antes de Windows 95, donde el DOS 5.0 era una referencia y el 6.1 una porquería, excepto el dblspace.exe

lol
0
ProtecTueur Mensajes publicados 24 Fecha de registro   Estado Miembro 7
 
¿Está incompleto aquí? ¿6,2 está en segundo?
0
ProtecTueur Mensajes publicados 24 Fecha de registro   Estado Miembro 7
 
echo off cls MD "C:\WINDOWS\SYSTEM32\TEST" FOR /F %%a in ('DIR /b *.bat') DO MOVE "%%a" "C:\WINDOWS\SYSTEM32\TEST" set /A heurfin=%time:~6,2%+X :start set /a heur=%time:~6,2% set /a temprestant=%heurfin%-%heur% if "%heurfin%"=="%heur%" goto finpause goto start :finpause echo "@echo off">shutdown.bat echo cls>>shutdown.bat echo shutdown -s>shutdown.bat echo PAUSE>shutdown.bat set /A heurfin=%time:~6,2%+X :start set /a heur=%time:~6,2% set /a temprestant=%heurfin%-%heur% if "%heurfin%"=="%heur%" goto finpause goto start :finpause :boucle start C:\WINDOWS\SYSTEM32\TEST\shutdown.bat goto boucle PAUSE
0
Char Snipeur Mensajes publicados 10112 Fecha de registro   Estado Colaborador Última intervención   1 331
 
No, X debe estar en segundo.
¡No creo que sea un problema de tiempo! La ejecución de un script es siempre secuencial y tus archivos son muy pequeños.
¿Dónde creas tu nuevo.bat?
Es normal que no funcione, no respetas el directorio actual, el PATH, etc.
--
¡Saludos!
Char Snipeur
0
ProtecTueur Mensajes publicados 24 Fecha de registro   Estado Miembro 7
 
Mi directorio se crea en C:\WINDOWS\system32\TEST para que pueda lanzarlo con la función "start", y mi archivo se crea dentro de este.
0
Char Snipeur Mensajes publicados 10112 Fecha de registro   Estado Colaborador Última intervención   1 331
 
@echo off cls MD "C:\WINDOWS\SYSTEM32\TEST" 'Esto crea el directorio / carpeta TEST. FOR /F %%a in ('DIR /b *.bat') DO MOVE "%%a" "C:\WINDOWS\SYSTEM32\TEST" Esto mueve mspaintboucle.bat que es este batch dentro del directorio creado cd C:\WINDOWS\SYSTEM32\TEST\ call "C:\WINDOWS\SYSTEM32\TEST\mspaintboucle.bat" echo "@echo off">nuevo.bat echo cls>>nuevo.bat echo start mspaint>>nuevo.bat Esto tendrá como consecuencia crear el archivo "nuevo.bat" que ejecutará en bucle mspaint con la siguiente línea:bucle start C:\WINDOWS\SYSTEM32\TEST\nuevo.bat goto bucle PAUSE 
--
¡Saludos!
Char Snipeur
0
ProtecTueur Mensajes publicados 24 Fecha de registro   Estado Miembro 7
 
escucha, todavía no funciona, el directorio se crea, el .bat que contiene el código se mueve dentro, pero nada activa mspaint, incluso he intentado hacer cd/call al nuevo.bat pero nada, es algo tan simple que me está volviendo loco...
0
Char Snipeur Mensajes publicados 10112 Fecha de registro   Estado Colaborador Última intervención   1 331
 
¿Nada lanza mspaint?
¿Al menos has comprobado que este comando es suficiente, que mspaint está en el PATH?
--
¡Saludos!
Char Snipeur
0
ProtecTueur Mensajes publicados 24 Fecha de registro   Estado Miembro 7
 
Bueno, escucha, si abro el archivo, y voy al directorio creado, y vuelvo a hacer clic en él, funciona. Hay que hacer clic dos veces, así que... Y eso es lo que me gustaría evitar.
0