Cómo ejecutar un bat que contiene código ascii?

Tengo un archivo bat, este es un menú con varias opciones y llama a otras rutinas. Para hacerlo más bonito diseñe ventanas con código ascii, pero al ejecutarlo este se cierra de inmediato. ¿Por qué pasa esto? ¿O no se pueden insertar caracteres ascii en un archivo bat?

Desde ya se agradece

2 respuestas

Respuesta
2

En BAT todo se escribe en código ASCII, de modo que imagino que te refieres a algún código ASCII que representa caracteres especiales, como los que tienen una representación gráfica. No sé a que códigos ASCII te refieres ni como pretendes que aparezcan en las ventanas que has diseñado. La forma de hacerlo es con el comando ECHO.

Por poner un ejemplo concreto este código:

:: Una forma de obtener un logo en MSDOS (en este caso "BEISBOL")
@echo off
Color 17
Cls
Echo.
Echo.
Echo.
Echo.
Echo.
Echo.
Echo.
Echo.
Echo.
Echo ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
echo ÛÛ ÛÛ
echo ÛÛ °°°°°°°» °°°°°°°» °°°°°°°» °°°°°°°» °°°°°°°» °°°°°°°» °°°» ÛÛ
echo ÛÛ °°ÉÍÍ°°º °°ÉÍÍÍͼ ÈÍ°°°Éͼ °°ÉÍÍÍͼ °°ÉÍÍ°°º °°ÉÍÍ°°º °°°º ÛÛ
echo ÛÛ °°°°°°°º °°°°» °°°º °°°°°°°» °°°°°°°º °°º °°º °°°º ÛÛ
echo ÛÛ °°ÉÍÍ°°º °°Éͼ °°°º °°º °°ÉÍÍ°°º °°º °°º °°°º ÛÛ
echo ÛÛ °°°°°°°º °°°°°°°» °°°°°°°» °°°°°°°º °°°°°°°º °°°°°°°º °°°°°°» ÛÛ
echo ÛÛ ÈÍÍÍÍͼ ÈÍÍÍÍÍͼ ÈÍÍÍÍÍͼ ÈÍÍÍÍÍͼ ÈÍÍÍÍÍͼ ÈÍÍÍÍÍͼ ÈÍÍÍÍͼ ÛÛ
echo ÛÛ ÛÛ
echo ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
pause

genera esta ventana:

No creo que sea ningún código ASCII el responsable de que se cierre la ventana pero debes decirme como intentas ejecutar el BAT y alguno de los códigos que crees que tiene la culpa, y la forma en que pretendes que se muestre.

Desgraciadamente el editor de la página ha alterado un poco el BAT original eliminando algunos espacios intermedios lo que hace que el aspecto sea un poco diferente del que debía. Pero aunque el resultado quede un poco trastocado la idea de fondo es que se puede hacer y si el bat se configura adecuadamente puede conseguirse que se vea correctamente.

Lo copio como ventana para que se vea la diferencia

Muchas gracias, probare con lo que me envio.

De todas maneras esto fue lo que inserte en mi menu

Pause
@echo off
TITLE Bienvenid@ al Menu de Seleccion de Reinicios
MODE con:cols=90 lines=30

:inicio
SET var=0
cls
Echo ╔═════════════════════════════════════════════════════════════════════════╗
Echo ║ %DATE% ^| %TIME% ║
Echo ╚═════════════════════════════════════════════════════════════════════════╝
Echo ------------------------------------------------------------------------------
echo %DATE% ^| %TIME%
Echo ------------------------------------------------------------------------------
Echo 1.- Reinicio Servidores Bursatil
Echo 2.- Reinicio Servidores Gestion
Echo 3.- Reinicio Servidores Larra
Echo 4.- Reinicio Servidores Otros

Y al ejecutarlo este se cierra de inmediato

He copiado tu bat en mi equipo, he cambiado algunas cosas porque lo que con el juego de caracteres de Windows se ve de una manera se ve de otra con el juego de caracteres de MSDOS, y lo he ejecutado. Esto es lo que me sale cuando pulso cualquier tecla (en respuesta al comando PAUSE inicial)

Pero claro, yo he ejecutado el BAT desde una ventana CMD (o Símbolo del sistema) que no se cierra al terminar el bat. Si lo ejecutas desde la ventana del Explorador de Windows se cerrará al terminar el bat si los comandos internos no exigen pausas, pero no es por la presencia de caracteres gráficos ASCII.

Por si te sirve, esta es mi adaptación de tu código:

Pause
@echo off
TITLE Bienvenid@ al Menu de Seleccion de Reinicios
MODE con:cols=90 lines=30
:inicio
SET var=0
Cls
Echo éííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí»
echo º %DATE% ^| %TIME%                                              º
Echo èííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí¼
Echo ------------------------------------------------------------------------------
echo %DATE% ^| %TIME%
Echo ------------------------------------------------------------------------------
Echo 1.- Reinicio Servidores Bursatil
Echo 2.- Reinicio Servidores Gestion
Echo 3.- Reinicio Servidores Larra
Echo 4.- Reinicio Servidores Otros
Pause

Seguramente el editor de la página eliminará espacios en la 2ª línea de ECHO y pondrá en mayúsculas las primeras letras de algunos comandos pero luego puedes reajustarlos. He añadido un segundo comando PAUSE antes de finalizar el BAT para que puedas ver lo que sale, incluso si lo ejecutas desde el Explorador de Windows. Y otra cosa, si quieres incluir código en una ventanita como la que uso, yo puedes hacerlo con la herramienta "<>" (SNIPPET) del menú de la página.

Quería decir "como la que uso yo,..." y no lo que he puesto "como la que uso, yo..."

Respuesta

¿Puedes mandar captura?

Captura no puedo sacar ya que al ejecutar el bat, este se cierra de inmediato. Pero te copio parte de lo que inserte

Pause
@echo off
TITLE Bienvenid@ al Menu de Seleccion de Reinicios
MODE con:cols=90 lines=30

:inicio
SET var=0
cls
Echo ╔═════════════════════════════════════════════════════════════════════════╗
Echo ║ %DATE% ^| %TIME% ║
Echo ╚═════════════════════════════════════════════════════════════════════════╝
Echo ------------------------------------------------------------------------------
echo %DATE% ^| %TIME%
Echo ------------------------------------------------------------------------------
Echo 1.- Reinicio Servidores Bursatil
Echo 2.- Reinicio Servidores Gestion
Echo 3.- Reinicio Servidores Larra
Echo 4.- Reinicio Servidores Otros

De todas maneras probare con lo que me envio su colega para ver si me resulta.

Gracias

Haz lo que te diga él, domina al 200% este tema ;)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas