Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Mensaje iniciado por: Baphomet2204 en 23 Noviembre 2018, 03:53 AM

Título: ¿Como hacer una bat "multicolor"?
Publicado por: Baphomet2204 en 23 Noviembre 2018, 03:53 AM
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


Título: Re: ¿Como hacer una bat "multicolor"?
Publicado por: 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"
Título: Re: ¿Como hacer una bat "multicolor"?
Publicado por: Baphomet2204 en 24 Noviembre 2018, 02:46 AM
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
Título: Re: ¿Como hacer una bat "multicolor"?
Publicado por: branon32 en 6 Diciembre 2018, 22:12 PM
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 ?"