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

  1. 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
  2. ProtecTueur Mensajes publicados 24 Fecha de registro   Estado Miembro 7
     
    Sí, en general, pero ¿está correcto mi código? Aparte del temporizador.
    0
  3. uToPiuM
     
    sí, parece más o menos correcto, para el temporizador, busca un poco, te doy la respuesta en 10 minutos :)
    0
  4. 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
  5. 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
  6. ProtecTueur Mensajes publicados 24 Fecha de registro   Estado Miembro 7
     
    ¿Está incompleto aquí? ¿6,2 está en segundo?
    0
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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