Pausar la ejecución de mi batch

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