elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [BATCH] Colored ECHO función
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [BATCH] Colored ECHO función  (Leído 5,031 veces)
Binary_Death

Desconectado Desconectado

Mensajes: 214



Ver Perfil
[BATCH] Colored ECHO función
« en: 22 Julio 2012, 01:03 am »

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:

Código:
@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 Desconectado

Mensajes: 9.813



Ver Perfil
Re: Colored ECHO función
« Respuesta #1 en: 22 Julio 2012, 09:33 am »

Buen code!


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.813



Ver Perfil
Re: Colored ECHO función
« Respuesta #2 en: 24 Julio 2012, 08:17 am »

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":

Código
  1. @Echo OFF
  2.  
  3. REM Colored Echo
  4. REM Mod by Elektro H@cker
  5. REM Code original by Binary_Death
  6.  
  7. :: Modo de empleo:
  8. ::
  9. :: Modo Normal:
  10. :: Call :Color [NOMBRE DEL COLOR DE FONDO] [NOMBRE DEL COLOR DE TEXTO] "TEXTO"
  11. ::
  12. :: Modo Hex:
  13. :: Call :Color [DÍGITO DEL COLOR DE FONDO EN HEXADECIMAL] [DÍGITO DEL COLOR DE TEXTO EN HEXADECIMAL] "TEXTO"
  14.  
  15. :: Ejemplos de uso:
  16. Call :Color ROJO BLANCO       "Hola mundo!"
  17. Call :Color NEGRO VERDE2      "Hola mundo!"
  18. Call :Color ROSA NEGRO        "Hola mundo!"
  19. Call :Color NINGUNO AMARILLO2 "Hola mundo!"
  20. Call :Color F A "Hola mundo!"
  21. Call :Color A F "Hola mundo!"
  22. Call :Color D E "Hola mundo!"
  23. Call :Color 4 8 "Hola mundo!"
  24.  
  25.  
  26. :Color
  27.  
  28. REM Lista de parámetros/colores :
  29. REM :: :: :: :: :: :: :: :: :: ::
  30. REM NINGUNO (No cambiar el color por defecto de fondo/texto)
  31. REM
  32. REM BLANCO
  33. REM AMARILLO
  34. REM ROJO
  35. REM AZUL
  36. REM AGUA
  37. REM PURPURA
  38. REM ROSA
  39. REM VERDE
  40. REM GRIS
  41. REM NEGRO
  42. REM BLANCO2
  43. REM AMARILLO2
  44. REM ROJO2
  45. REM AZUL2
  46. REM AGUA2
  47. REM VERDE2
  48.  
  49. IF /I "%~1" EQU "NEGRO"     (Set Back_Color=0)
  50. IF /I "%~1" EQU "AZUL"      (Set Back_Color=1)
  51. IF /I "%~1" EQU "VERDE"     (Set Back_Color=2)
  52. IF /I "%~1" EQU "AGUA"      (Set Back_Color=3)
  53. IF /I "%~1" EQU "ROJO"      (Set Back_Color=4)
  54. IF /I "%~1" EQU "PURPURA"   (Set Back_Color=5)
  55. IF /I "%~1" EQU "AMARILLO"  (Set Back_Color=6)
  56. IF /I "%~1" EQU "BLANCO"    (Set Back_Color=7)
  57. IF /I "%~1" EQU "GRIS"      (Set Back_Color=8)
  58. IF /I "%~1" EQU "AZUL2"     (Set Back_Color=9)
  59. IF /I "%~1" EQU "VERDE2"    (Set Back_Color=A)
  60. IF /I "%~1" EQU "AGUA2"     (Set Back_Color=B)
  61. IF /I "%~1" EQU "ROJO2"     (Set Back_Color=C)
  62. IF /I "%~1" EQU "ROSA"      (Set Back_Color=D)
  63. IF /I "%~1" EQU "AMARILLO2" (Set Back_Color=E)
  64. IF /I "%~1" EQU "BLANCO2"   (Set Back_Color=F)
  65. IF /I "%~2" EQU "NEGRO"     (Set Text_Color=0)
  66. IF /I "%~2" EQU "AZUL"      (Set Text_Color=1)
  67. IF /I "%~2" EQU "VERDE"     (Set Text_Color=2)
  68. IF /I "%~2" EQU "AGUA"      (Set Text_Color=3)
  69. IF /I "%~2" EQU "ROJO"      (Set Text_Color=4)
  70. IF /I "%~2" EQU "PURPURA"   (Set Text_Color=5)
  71. IF /I "%~2" EQU "AMARILLO"  (Set Text_Color=6)
  72. IF /I "%~2" EQU "BLANCO"    (Set Text_Color=7)
  73. IF /I "%~2" EQU "GRIS"      (Set Text_Color=8)
  74. IF /I "%~2" EQU "AZUL2"     (Set Text_Color=9)
  75. IF /I "%~2" EQU "VERDE2"    (Set Text_Color=A)
  76. IF /I "%~2" EQU "AGUA2"     (Set Text_Color=B)
  77. IF /I "%~2" EQU "ROJO2"     (Set Text_Color=C)
  78. IF /I "%~2" EQU "ROSA"      (Set Text_Color=D)
  79. IF /I "%~2" EQU "AMARILLO2" (Set Text_Color=E)
  80. IF /I "%~2" EQU "BLANCO2"   (Set Text_Color=F)
  81.  
  82. Echo "%~1%~2"|Findstr "\"..\"" >NUL && Set Back_Color=%~1&& Set Text_Color=%~2
  83.  
  84. IF /I "%~1" EQU "NINGUNO"   (
  85. For /F "Tokens=2 Delims=x" %%X in ('Reg query "HKCU\Console" /v "Screencolors" 2^>NUL') Do (
  86. Echo "%%X"|Findstr "\"..\"" >NUL && Set "Back_Color=%%X" && Call Set "Back_Color=%%Back_Color:~0,1%%" || (Set Back_Color=0)
  87. )
  88. ) || (Set Back_Color=0)
  89.  
  90. IF /I "%~2" EQU "NINGUNO"   (
  91. For /F "Tokens=2 Delims=x" %%X in ('Reg query "HKCU\Console" /v "Screencolors" 2^>NUL') Do (
  92. Set "Text_Color=%%X" && Call Set "Text_Color=%%Text_Color:~-1%%"
  93. )
  94. ) || (Set Text_Color=7)
  95.  
  96. If Not defined Back_Color (Echo [Colored echo error] Color de fondo incorrecto "%~1". & exit /B 1)
  97. If Not defined Text_Color (Echo [Colored echo error] Color de texto incorrecto "%~2". & exit /B 1)
  98. IF "%~3" EQU ""           (Echo [Colored echo error] No hay texto que mostrar. & Exit /B 1)
  99.  
  100. CHDir "%TEMP%"
  101. Exit|CMD /K Prompt $H>"%~3"
  102. Findstr /V /A:%Back_Color%%Text_Color% /R "^$" "%~3*" 2>NUL && ECHO: || (Echo [Colored echo error] Error desconocido. & Exit /B 1)
  103. Del /F /Q "%~3"
  104. Set "Back_Color="
  105. Set "Text_Color="
  106. Goto :EOF

Saludos!
En línea

Binary_Death

Desconectado Desconectado

Mensajes: 214



Ver Perfil
Re: Colored ECHO función
« Respuesta #3 en: 24 Julio 2012, 09:21 am »

Muy bien  :P 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 Desconectado

Mensajes: 9.813



Ver Perfil
Re: Colored ECHO función
« Respuesta #4 en: 24 Julio 2012, 11:26 am »

Muy bien  :P 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:
Código:
Call :Color [Rojo] hola [amarillo] mundo

Creo que para algo así más extenso ya está colous
PD: 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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Funcion echo en HTML « 1 2 »
PHP
dimitrix 19 7,713 Último mensaje 20 Diciembre 2007, 23:34 pm
por Azielito
Duda con funcion dentro de funcion en un echo
PHP
N4X 6 5,847 Último mensaje 21 Enero 2010, 18:12 pm
por N4X
Dos tipos de comillas en sentencia echo y funcion javascript
PHP
mokoMonster 2 3,087 Último mensaje 8 Diciembre 2011, 16:57 pm
por WHK
[BATCH] Duda con comando echo
Scripting
Meine programmen 2 3,961 Último mensaje 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,157 Último mensaje 6 Mayo 2014, 17:46 pm
por PedroDJavier
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines