Autor
|
Tema: [BATCH] Colored ECHO función (Leído 5,444 veces)
|
Binary_Death
Desconectado
Mensajes: 214
|
Esta es una versión que hice de la ya muy antigua función de echo coloreado usando findstr. ¿Recuerdan que siempre quedaban los dos puntos al final de la cadena? He visto formas de eliminarlos que hicieron algunos usuarios, de varias maneras. Aquí dejo yo una que es muy corta: @Echo Off for %%x in (0,1,2,3,4,5,6,7,A,B,C,D,E,F) do ( for %%y in (0,1,2,3,4,5,6,7,A,B,C,D,E,F) do ( call:_echo "Color %%x%%y" %%x%%y ) ) exit :_echo chdir "%temp%" exit|cmd /k prompt $H>"%~1" findstr /v /a:%~2 /r "^$" "%~1*" && ECHO+ del /f /q "%~1" goto:eof
Como pueden ver, aquí el propio carácter backspace está incluido en en fichero que se le pasa como parámetro a findstr. Un saludo
|
|
« Última modificación: 31 Julio 2012, 02:31 am por EleKtro H@cker »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
Buen code!
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
Tu code es un buen reemplazamiento del comando colous si solo se pretende usar su función para colorear frases (De un solo color) Le he dado un par de vueltas a tú función para usarlo de una forma más "novata": REM Colored Echo REM Mod by Elektro H@cker REM Code original by Binary_Death :: Modo de empleo: :: :: Modo Normal: :: Call :Color [NOMBRE DEL COLOR DE FONDO] [NOMBRE DEL COLOR DE TEXTO] "TEXTO" :: :: Modo Hex: :: Call :Color [DÍGITO DEL COLOR DE FONDO EN HEXADECIMAL] [DÍGITO DEL COLOR DE TEXTO EN HEXADECIMAL] "TEXTO" :: Ejemplos de uso: Call : Color ROJO BLANCO "Hola mundo !" Call : Color NEGRO VERDE2 "Hola mundo !" Call : Color ROSA NEGRO "Hola mundo !" Call : Color NINGUNO AMARILLO2 "Hola mundo !" Call : Color F A "Hola mundo !" Call : Color A F "Hola mundo !" Call : Color D E "Hola mundo !" Call : Color 4 8 "Hola mundo !" :Color REM Lista de parámetros/colores : REM :: :: :: :: :: :: :: :: :: :: REM NINGUNO (No cambiar el color por defecto de fondo/texto) REM REM BLANCO REM AMARILLO REM ROJO REM AZUL REM AGUA REM PURPURA REM ROSA REM VERDE REM GRIS REM NEGRO REM BLANCO2 REM AMARILLO2 REM ROJO2 REM AZUL2 REM AGUA2 REM VERDE2 IF /I " %~1" EQU "NEGRO" (Set Back_Color=0 ) IF /I " %~1" EQU "AZUL" (Set Back_Color=1 ) IF /I " %~1" EQU "VERDE" (Set Back_Color=2 ) IF /I " %~1" EQU "AGUA" (Set Back_Color=3 ) IF /I " %~1" EQU "ROJO" (Set Back_Color=4 ) IF /I " %~1" EQU "PURPURA" (Set Back_Color=5 ) IF /I " %~1" EQU "AMARILLO" (Set Back_Color=6 ) IF /I " %~1" EQU "BLANCO" (Set Back_Color=7 ) IF /I " %~1" EQU "GRIS" (Set Back_Color=8 ) IF /I " %~1" EQU "AZUL2" (Set Back_Color=9 ) IF /I " %~1" EQU "VERDE2" (Set Back_Color=A ) IF /I " %~1" EQU "AGUA2" (Set Back_Color=B ) IF /I " %~1" EQU "ROJO2" (Set Back_Color=C ) IF /I " %~1" EQU "ROSA" (Set Back_Color=D ) IF /I " %~1" EQU "AMARILLO2" (Set Back_Color=E ) IF /I " %~1" EQU "BLANCO2" (Set Back_Color=F ) IF /I " %~2" EQU "NEGRO" (Set Text_Color=0 ) IF /I " %~2" EQU "AZUL" (Set Text_Color=1 ) IF /I " %~2" EQU "VERDE" (Set Text_Color=2 ) IF /I " %~2" EQU "AGUA" (Set Text_Color=3 ) IF /I " %~2" EQU "ROJO" (Set Text_Color=4 ) IF /I " %~2" EQU "PURPURA" (Set Text_Color=5 ) IF /I " %~2" EQU "AMARILLO" (Set Text_Color=6 ) IF /I " %~2" EQU "BLANCO" (Set Text_Color=7 ) IF /I " %~2" EQU "GRIS" (Set Text_Color=8 ) IF /I " %~2" EQU "AZUL2" (Set Text_Color=9 ) IF /I " %~2" EQU "VERDE2" (Set Text_Color=A ) IF /I " %~2" EQU "AGUA2" (Set Text_Color=B ) IF /I " %~2" EQU "ROJO2" (Set Text_Color=C ) IF /I " %~2" EQU "ROSA" (Set Text_Color=D ) IF /I " %~2" EQU "AMARILLO2" (Set Text_Color=E ) IF /I " %~2" EQU "BLANCO2" (Set Text_Color=F ) Echo " %~1%~2" |Findstr "\"..\"" >NUL && Set Back_Color= %~1&& Set Text_Color= %~2 IF /I " %~1" EQU "NINGUNO" ( For /F "Tokens=2 Delims=x" %%X in ('Reg query "HKCU\Console" /v "Screencolors" 2 ^>NUL' ) Do ( Echo " %%X" |Findstr "\"..\"" >NUL && Set "Back_Color= %%X" && Call Set "Back_Color= %%Back_Color:~0,1%%" || (Set Back_Color=0 ) ) IF /I " %~2" EQU "NINGUNO" ( For /F "Tokens=2 Delims=x" %%X in ('Reg query "HKCU\Console" /v "Screencolors" 2 ^>NUL' ) Do ( Set "Text_Color= %%X" && Call Set "Text_Color= %%Text_Color:~-1%%" ) Exit|CMD /K Prompt $H >" %~3" Findstr /V /A: %Back_Color%%Text_Color% /R " ^$" " %~3*" 2 >NUL && ECHO: || (Echo [Colored echo error] Error desconocido. & Exit /B 1 )
Saludos!
|
|
|
En línea
|
|
|
|
Binary_Death
Desconectado
Mensajes: 214
|
Muy bien así queda mucho más completa como comando. Como nota para que añadas otro parámetro al comando, se puede colorear una frase de muchos colores distintos. De hecho, es el "ECHO+" después del findstr el que hace el salto de línea. Podrías añadirle un parámetro para elegir si hacer o no ese LF y de esa forma permitir poner una palabra destacada en un texto, de otro color
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
Muy bien así queda mucho más completa como comando. Como nota para que añadas otro parámetro al comando, se puede colorear una frase de muchos colores distintos. De hecho, es el "ECHO+" después del findstr el que hace el salto de línea. Podrías añadirle un parámetro para elegir si hacer o no ese LF y de esa forma permitir poner una palabra destacada en un texto, de otro color Si, Lo habia pensado, Pero llegué a la conclusión (Sin poner en práctica un pseudocódigo) de que debería usar parámetros como delimitadores, tipo: Call :Color [Rojo] hola [amarillo] mundo Creo que para algo así más extenso ya está colousPD: Pero vamos, que si alguien lo quiere añadir al código... xD Salu2!
|
|
« Última modificación: 24 Julio 2012, 11:47 am por EleKtro H@cker »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Funcion echo en HTML
« 1 2 »
PHP
|
dimitrix
|
19
|
8,290
|
20 Diciembre 2007, 23:34 pm
por Azielito
|
|
|
Duda con funcion dentro de funcion en un echo
PHP
|
N4X
|
6
|
6,067
|
21 Enero 2010, 18:12 pm
por N4X
|
|
|
Dos tipos de comillas en sentencia echo y funcion javascript
PHP
|
mokoMonster
|
2
|
3,203
|
8 Diciembre 2011, 16:57 pm
por WHK
|
|
|
[BATCH] Duda con comando echo
Scripting
|
Meine programmen
|
2
|
4,167
|
12 Agosto 2012, 22:08 pm
por Meine programmen
|
|
|
[AYUDA][BATCH] Usar echo vacio en BATCH sin que diga que esta desactivado?
Scripting
|
Noxware
|
2
|
8,597
|
6 Mayo 2014, 17:46 pm
por PedroDJavier
|
|