¿Como hacer una bat "multicolor"?

Iniciado por Baphomet2204, 23 Noviembre 2018, 03:53 AM

0 Miembros y 1 Visitante están viendo este tema.

Baphomet2204

Hola, quisiera saber si se puede llegar a realizar lo que quiero hacer

me gustaría que por ejemplo creara un archivo batch y que se pudiera crear un resultado similar a esto:



=================
:                CMD               :
=================
: Buscando archivo... Listo :
: Restaurar Backup (S/N)   :

El bacth buscaría un archivo establecido y si lo encuentra mostraría el mensaje Listo o el mensaje Error pero ese mensaje de verificación seria resaltado en otro color pero solo ese fragmento del texto, no he visto un código que logre hacer ese solo efecto solo se hacer el cambio completo de texto y fondo pero no así como lo que quiero, agradezco su ayuda


$Diseñando_vida

while(vivas)
{
       Come();
       //Duerme();
       Programa();
       Repite();
}

EdePC

Saludos,

- Utilizar colores en Batch es complejo y por lo general no es lo ideal, se puede hacer utilizando FindStr que utiliza los mismos códigos de color que Color. PERO se requiere de la existencia de un Fichero que tenga como nombre el texto a colorear, además de que dicho aparecerá en la consola seguido de dos puntos (nombre_fichero:), sin olvidarse de que el contenido del fichero aparecerá luego del texto coloreado:

Código (dos) [Seleccionar]
@echo off
echo =============================
echo :            CMD            :
echo =============================

set /p= " :" <nul >"Listo"
set /p= ": Buscando archivo... " <nul
findstr /a:0c /c:":" /s "Listo"
echo.

echo : Restaurar Backup (S/N)    :
pause >nul


=============================
:            CMD            :
=============================
: Buscando archivo... Listo::
: Restaurar Backup (S/N)    :


-- Utilizo set /p para evitar los saltos de linea que imprime echo al final.
-- findstr /a:0c /c:":" /s "Listo"
-- findstr /a:[código de color] /c:"contenido_del_fichero" /s "nombre_del_fichero"
-- findstr /a:[código de color] /c:"texto no coloreado que aparecerá luego del texto coloreado" /s "texto coloreado"

Baphomet2204

Cita de: EdePC en 24 Noviembre 2018, 02:42 AM
Saludos,

- Utilizar colores en Batch es complejo y por lo general no es lo ideal, se puede hacer utilizando FindStr que utiliza los mismos códigos de color que Color. PERO se requiere de la existencia de un Fichero que tenga como nombre el texto a colorear, además de que dicho aparecerá en la consola seguido de dos puntos (nombre_fichero:), sin olvidarse de que el contenido del fichero aparecerá luego del texto coloreado:

Código (dos) [Seleccionar]
@echo off
echo =============================
echo :            CMD            :
echo =============================

set /p= " :" <nul >"Listo"
set /p= ": Buscando archivo... " <nul
findstr /a:0c /c:":" /s "Listo"
echo.

echo : Restaurar Backup (S/N)    :
pause >nul


=============================
:            CMD            :
=============================
: Buscando archivo... Listo::
: Restaurar Backup (S/N)    :


-- Utilizo set /p para evitar los saltos de linea que imprime echo al final.
-- findstr /a:0c /c:":" /s "Listo"
-- findstr /a:[código de color] /c:"contenido_del_fichero" /s "nombre_del_fichero"
-- findstr /a:[código de color] /c:"texto no coloreado que aparecerá luego del texto coloreado" /s "texto coloreado"

Lo unico que puedo decir es perfecto, a la primera sin complicaciones, gracias
$Diseñando_vida

while(vivas)
{
       Come();
       //Duerme();
       Programa();
       Repite();
}

branon32

Hola amigo, puedes utilizar como "libreria" bg.exe que entre sus muchas funciones hay una para escribir con colores en bat. Aquí te dejo el enlace:

http://batch.xoo.it/t2238-BG-exe-Utility-for-Batch-Games.htm

Sólo tienes que colocar BG.EXE en la misma carpeta que el archivo bat y escribir esto
Código (DOS) [Seleccionar]

@echo off

bg print A "Hola " B "Mundo"
pause>nul


Los colores A y B los puedes ver en el cmd "color ?"
sit tibi terra levis