unos segundos script pause pausar ejemplos comandos comando bat archivos windows batch-file cmd

windows - script - pausar unos segundos bat



Cambiar el resultado del comando de pausa en el script por lotes (7)

Estoy escribiendo un script por lotes de Windows. De forma predeterminada, el comando pausa pausará la secuencia de comandos y mostrará el texto "Presione cualquier tecla para continuar ..." .

¿Cómo modifico este texto para mostrar mi propio texto al usuario?

Gracias. :)


"No es realmente lo que estaba buscando, me preguntaba si había una manera de realmente cambiar el texto de salida del comando Pausa, no solo una solución". - Hashim

¡Sí tu puedes! Pero debe tener en cuenta que PAUSE es un comando interno del programa CMD.EXE, por lo tanto, para modificar el mensaje que muestra PAUSE, debe modificar el archivo CMD.EXE. Para hacerlo, debe usar un editor que pueda modificar archivos binarios. XVI32 programa XVI32 través de estos pasos:

1- Copy CMD.EXE file to a new folder created for this purpose: COPY %COMSPEC% 2- Edit the copy of CMD.EXE with XVI32.EXE program: 2.1- Locate the message you want. Messages are stored in 16-bits elements with the high byte equal zero. To locate a message: 2.1.1- In Search> Find> Text string> enter the message you want. 2.1.2- Convert Text -> Hex 2.1.3- Insert a zero after each letter-value 2.1.4- Press Ok 2.2- Modify the message for the new one. Modify existent letters only and keep zeros in place. Note that you can NOT extend any message. 2.3- End the edition and save the modified file.

Ahora puede ejecutar CMD.EXE para obtener el mensaje de PAUSA modificado. Hice una prueba de este procedimiento:

C:/DOCUME~1/Antonio/MYDOCU~1/My Webs/XVI32 Hex File Editor >pause Press any key to continue . . . C:/DOCUME~1/Antonio/MYDOCU~1/My Webs/XVI32 Hex File Editor >cmd Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:/DOCUME~1/Antonio/MYDOCU~1/My Webs/XVI32 Hex File Editor >pause Oprime una tecla para seguir. .

Notas para todos los que leyeron esta respuesta:

NOTA 1 : ¡Por favor, no publique ese comentario diciendo que la modificación del archivo CMD.EXE NUNCA debe hacerse! Pienso lo mismo. Acabo de publicar esta respuesta para que el OP se haya dado cuenta de lo que realmente pidió ...

NOTA 2 : La revisión del archivo CMD.EXE con un editor de texto, como el Bloc de notas, es muy interesante. Puede ver todos los comandos internos, detalles interesantes (como = ExitCode y = ExitCodeAscii variables), todos los mensajes de error, etc. Por ejemplo, estos son los comandos internos:

C O L O R T I T L E C H D I R C L S C M D E X T V E R S I O N D E F I N E D C O P Y P A T H P R O M P T P U S H D P O P D A S S O C F T Y P E D A T E D E L D I R E C H O E N D L O C A L E R A S E E R R O R L E V E L E X I T E X I S T B R E A K F O R G O T O I F K E Y S M K D I R M D N O T P A U S E R D R E M M O V E R E N A M E R E N R M D I R S E T S E T L O C A L S H I F T S T A R T T I M E T Y P E V E R I F Y V E R V O L = , ; + / [ ] " : . / P A T H E X T P A T H P R O M P T F O R / ? I F / ? R E M / ? % s % s % s / A / P : E O F f d p n x s a t z D O / L / D / F / R I N E L S E ( % s ) % s % s % s % s % c % c % s % s & ( ) [ ] { } ^ = ; ! % '' + , ` ~


¡Podrías hacerlo así!

@echo off echo Hello World! echo: echo Press 1 to continue set /p letter= if %letter% == 1 goto a ;or instead of goto you could write start and the file or website you want to start pause >nul :a cls echo BYE NOW! pause >nul


Aquí hay otro truco

Pause. >nul | echo. Press something to continue


Aquí hay un trazador de líneas

pause>nul|set/p =any key to exit ...

Es un poco más corto (uno menos ''nul'') que la solución de Aacini:

set/p<nul =any key to exit ...&pause>nul

y, con la ''pausa'' primero, creo que está un poco más claro cuál es la intención.

Con ambos

cursor stays on the same line ANY key works, not just ''enter''

Ninguno de los dos es tan bueno como el hipotético

pause/t any key to exit ...

Es difícil creer que ''pausa'' haya sobrevivido 35 años sin esta habilidad ;-)

Las soluciones con ''eco'' tienen la posible nueva línea final indeseable,
pero proporcione múltiples líneas de texto:

Pause>nul|(echo All your bases &echo are belong to us &echo Press any key to die...)

bv


No hay forma de cambiar el texto del comando de pause . Sin embargo, es posible que desee ver el comando de choice . Puede cambiar el texto que imprime. El único inconveniente es que debe proporcionar una lista de caracteres aceptables.


Otra solución sucia sería algo como esto,

SET /P =Press enter to return to the menu . . . GOTO :menu

El beneficio de esto es que el cursor permanece en la misma línea que el mensaje, al igual que con el comando PAUSE .

La desventaja es que solo escucha la tecla Intro.


Puede ocultar el texto del comando pause usando esto:

pause >nul

Luego, podría repetir su propio mensaje para decirle al usuario que se detuvo:

echo The batch file has paused

Entonces, la secuencia de comandos completa podría verse así:

@echo off echo Hello World! echo The batch file has paused pause >nul

Espero que esto ayude :)