Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: SuperDraco en 16 Noviembre 2009, 03:51 am



Título: como cambiar el color de una frase en un batch?? (SOLUCIONADO)
Publicado por: SuperDraco en 16 Noviembre 2009, 03:51 am
hola, mi pregunta es esta...

Quiero hacer esto:

hola
adios


si yo tengo:

color 07
echo hola
echo adios
exit

como hago para cambiar el color de "adios" a rojo? y que la frase anterior siga viendose en el otro color, en verde?

se puede hacer??

si intento esto :

color 07
echo hola
color 0c
echo adios
exit

"color 0c" sustituye a "color 07", osea que todo se ve en el ultimo color especificado...


Título: Re: como cambiar el color de una frase en un batch??
Publicado por: Angel Doze en 16 Noviembre 2009, 09:16 am
Hola pitoloko,

Se puede hacer con Findstr

@echo off

@ECHO/ > adios


Upsss no complete el codigo...Sorry*


Título: Re: como cambiar el color de una frase en un batch??
Publicado por: SuperDraco en 16 Noviembre 2009, 09:23 am
gracias aunque no tengo ni idea de como usar findstr para solucionarlo :/ he copiado tu code y no va.


Título: Re: como cambiar el color de una frase en un batch??
Publicado por: dark_fidodido en 16 Noviembre 2009, 17:45 pm
mira este link, aqui te viene todo sobre los colores ^^

http://foro.elhacker.net/gnulinux/shell_script-t12214.0.html%3Bwap2=


Título: Re: como cambiar el color de una frase en un batch??
Publicado por: SuperDraco en 16 Noviembre 2009, 20:31 pm
pero fidodido eso es para bash, no???  :-(


Título: Re: como cambiar el color de una frase en un batch??
Publicado por: xassiz_ en 16 Noviembre 2009, 21:24 pm
Hazlo con debug


Título: Re: como cambiar el color de una frase en un batch??
Publicado por: SuperDraco en 16 Noviembre 2009, 21:37 pm
Hazlo con debug

no tengo ese comando en windows 7 :(, pero gracias...


Título: Re: como cambiar el color de una frase en un batch??
Publicado por: Angel Doze en 17 Noviembre 2009, 08:06 am
Hola

Aca te pongo un enlace: http://foro.el-hacker.com/index.php/topic,176831.0.html (http://foro.el-hacker.com/index.php/topic,176831.0.html)

Alli encontraras lo que buscas.

Salu2!


Título: Re: como cambiar el color de una frase en un batch??
Publicado por: SuperDraco en 17 Noviembre 2009, 10:53 am
gracias me a servido mucho!!!


Título: Re: como cambiar el color de una frase en un batch?? (SOLUCIONADO)
Publicado por: Martin-Ph03n1X en 17 Noviembre 2009, 12:02 pm
que te sirvio de mucho?
el link spam?
que te parece si recopilas lo aprendido y lo expones habemos muchos interesados.


Título: Re: como cambiar el color de una frase en un batch?? (SOLUCIONADO)
Publicado por: SuperDraco en 18 Noviembre 2009, 01:03 am
que te parece si recopilas lo aprendido y lo expones habemos muchos interesados.

claro! siempre suelo hacerlo para "finalizar" mis posts, pero bueno este se me habia escapado :).

Buscando parte del link spam en google, dí con el enlace que era en realidad, y me encontré con dos codigos, el primero que es este, directamente no me funciona, o quizás lo uso mal, espero que puedas resolvermelo tu si tienes tiempo, copio palabras textuales:


"
 @set file=%2
 @set colr=%1
 @set DIR=%cd%
 @RD /S /Q %tmp%\color >nul 2>&1
 @md %tmp%\color
 @cd %tmp%\color\
 @echo.>%file%
 @findstr /A:%colr% /R "^" %file%*
 @del /Q /A /F %file%
 @cd %DIR%
 @RD /S /Q %tmp%\color >nul 2>&1

Esto lo guarde en un archivo llamado "cecho.bat" y luego desde el Cmd lo llamo asi:
Código:

CEcho.bat "A0" "Mensaje a mostrar de ejmplo"

Reemplazar A0 por otro color, los colores con los mismos que el comando Color /? en hexadecimal
lo que no tiene es el control de errores ya que lo ise para usarlo como se debe, pero si alguien puede agregarle el control de errores estaria mucho mejor..

"

y luego dejaban un enlace en la misma pagina, hacia otro codigo un poco más grande pero este realmente funciona casi a la perfección (en mi caso):




    
[bat][g][f]colores.cmd
« en: Mayo 06, 2009, 10:45:24 »    Responder con cita
colores.cmd
Código:

Código
  1.  @ECHO OFF
  2. SETLOCAL ENABLEEXTENSIONS
  3.  
  4. CALL :CECHO 0A "normal " "Los cometas del latin cometa y el griego kometes son cuerpos celestes constituidos por hielo y rocas que orbitan el Sol siguiendo orbitas muy elipticas" " normal"
  5. CALL :CECHO 0A "normal " "Texto coloreado" " normal"
  6. CALL :CECHO 0A "normal " "Texto coloreado" " normal"
  7. CALL :CECHO 0B "normal " "Texto coloreado"
  8. CALL :CECHO 0C "Texto coloreado"
  9. CALL :CECHO 0D "Texto coloreado"
  10. CALL :CECHO 0E "Texto coloreado"
  11. CALL :CECHO 0F "Texto coloreado"
  12. CALL :CECHO CF "Texto coloreado"
  13. CALL :CECHO AF "Texto coloreado"
  14. CALL :CECHO F0 "Texto coloreado"
  15. CALL :CECHO EE "amarillo sobre amarillo"
  16.  
  17. EXIT /B 0
  18.  
  19. :CECHO
  20. ::Autor: Carlos
  21. ::Version 1.0 22:42 07-05-2009
  22. ::Se pueden recibir tres argumentos de texto.
  23. ::Cada argumento debe ir encerrado entre comillas.
  24. ::Si se recibe un solo argumento este es el texto coloreado.
  25. ::Si se recibe dos argumentos o tres argumentos,
  26. ::el segundo argumento es el texto coloreado.
  27. ::Si el texto coloreado tiene mas de 150 caracteres,
  28. ::el texto coloreado es truncado a 150 caracteres y
  29. ::se recibe un mensaje avisando la accion.
  30. ::Basado en el trabajo de: Frank P. Westlake
  31. ::disponible en:
  32. :: http://groups.google.co.uk/group/alt.msdos.batch.nt
  33. :: /browse_thread/thread/f819acd4582d5de3/8c81192068307388
  34. SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
  35. PUSHD "%USERPROFILE%\"
  36. IF EXIST COLOR DEL /F /Q /A COLOR > NUL 2>&1
  37. IF EXIST COLOR\ RD /S /Q COLOR > NUL 2>&1
  38. MD COLOR
  39. CD COLOR
  40.  
  41. SET "C="
  42. SET "L1="
  43. SET "L2="
  44. SET "L3="
  45.  
  46. SET "C=%~1"
  47. ECHO.!C!|FINDSTR /R /I "\<[0-9A-F][0-9A-F]\>" > NUL || (
  48. ECHO. DEBE ESPECIFICARSE UN COLOR HEXADECIMAL.
  49. ECHO. COLOR /?
  50. EXIT /B 1
  51. )
  52. SET /A "TAM=0"
  53. SET "L1=%~2"
  54. SET "L2=%~3"
  55. SET "L3=%~4"
  56. SET "L1="
  57. SET "L2=%~2"
  58. SET "L3="
  59. )
  60. CALL :CLEAN C
  61. CALL :CLEAN L1
  62. CALL :CLEAN L2
  63. CALL :CLEAN L3
  64. IF DEFINED L2 CALL :LEN "%L2%"
  65. IF %TAM% GTR 150 (
  66. ECHO.TEXTO COLOREADO REDUCIDO A 150 CARACTERES DE LONGITUD
  67. )
  68. IF DEFINED L2 SET "L2=%L2:~0,150%"
  69. IF DEFINED L2 ECHO.%L3%>"%L2%"
  70. 0>NUL SET /P "_=%L1%"
  71. FINDSTR.EXE /A:%C% /R "^" "*"
  72. IF EXIST "%USERPROFILE%\COLOR" DEL /F /Q /A "%USERPROFILE%\COLOR" > NUL 2>&1
  73. IF EXIST "%USERPROFILE%\COLOR\" RD /S /Q "%USERPROFILE%\COLOR" > NUL 2>&1
  74.  
  75.  
  76. :LEN
  77. SETLOCAL ENABLEEXTENSIONS DISABLEDELAYEDEXPANSION
  78. SET /A CONTL=0
  79. SET "WORDL=%~1"
  80. :_LOOPL
  81. IF NOT DEFINED WORDL (GOTO :_ENDL)
  82. SET "WORDL=%WORDL:~1%"
  83. SET /A CONTL +=1
  84. GOTO :_LOOPL
  85. :_ENDL
  86. ENDLOCAL & SET /A TAM=%CONTL%
  87. EXIT /B 0
  88.  
  89.  
  90. :CLEAN
  91. ::deja solo caracteres dentro del rango a-z 0-9
  92. ::y espacio en el contenido de las variables.
  93. ::version 2.0
  94. ::Version modificada con mas caracteres
  95. ::solo para trabajar con funcion cecho.
  96. ::Los caracteres agregados son: # $ + - =   @
  97. ::Recibe un parametro con el nombre de la variable
  98. ::que se quiere filtrar su contenido.
  99. ::Ejemplo:
  100. ::call :clean nombreDeMiVariable
  101. ::autores: Matt Alvariz , Carlos
  102.  @SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
  103.  @SET "V=%*"
  104.  @SET "S=!% style="color: #448888;">V%!"
  105.  @IF NOT DEFINED S EXIT /B 1
  106.  @SET "V="
  107. :LOOP
  108.  @FOR %%* IN (
  109. " " 0 1 2 3 4 5 6 7 8 9 A B C D E F G
  110. H I J K L M N O P Q R S T U V W X Y Z
  111. # $ + - =   @
  112. ) DO   @IF /I "!S:~0,1!" EQU "%%~*" SET "V=!V!!S:~0,1!"
  113.  @SET "S=!S:~1!"
  114.  @IF DEFINED S GOTO :LOOP
  115.  @(ENDLOCAL & SET %*=%V%)
  116.  @SETLOCAL ENABLEEXTENSIONS
  117.  @EXIT /B 0
  118.  




saludos!