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 -
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.
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:
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.
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
-
¿Poner un temporizador???
Parece que es posible en todos los lenguajes
Debería sacar mi libro de DOS ;o)) -
Sí, en general, pero ¿está correcto mi código? Aparte del temporizador.
-
sí, parece más o menos correcto, para el temporizador, busca un poco, te doy la respuesta en 10 minutos :)
-
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 -
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 -
¿Está incompleto aquí? ¿6,2 está en segundo?
-
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 -
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 -
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.
-
@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 -
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...
-
¿Nada lanza mspaint?
¿Al menos has comprobado que este comando es suficiente, que mspaint está en el PATH?
--
¡Saludos!
Char Snipeur -
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.