Test Foro de elhacker.net SMF 2.1

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
Cita de: xassiz en 16 Noviembre 2009, 21:24 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
Cita de: Martin-Ph03n1X en 17 Noviembre 2009, 12:02 PM
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 (dos) [Seleccionar]
  @ECHO OFF
SETLOCAL ENABLEEXTENSIONS

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"
CALL :CECHO 0A "normal " "Texto coloreado" " normal"
CALL :CECHO 0A "normal " "Texto coloreado" " normal"
CALL :CECHO 0B "normal " "Texto coloreado"
CALL :CECHO 0C "Texto coloreado"
CALL :CECHO 0D "Texto coloreado"
CALL :CECHO 0E "Texto coloreado"
CALL :CECHO 0F "Texto coloreado"
CALL :CECHO CF "Texto coloreado"
CALL :CECHO AF "Texto coloreado"
CALL :CECHO F0 "Texto coloreado"
CALL :CECHO EE "amarillo sobre amarillo"

PAUSE
EXIT /B 0

:CECHO
::Autor: Carlos
::Version 1.0 22:42 07-05-2009
::Se pueden recibir tres argumentos de texto.
::Cada argumento debe ir encerrado entre comillas.
::Si se recibe un solo argumento este es el texto coloreado.
::Si se recibe dos argumentos o tres argumentos,
::el segundo argumento es el texto coloreado.
::Si el texto coloreado tiene mas de 150 caracteres,
::el texto coloreado es truncado a 150 caracteres y
::se recibe un mensaje avisando la accion.
::Basado en el trabajo de: Frank P. Westlake
::disponible en:
:: http://groups.google.co.uk/group/alt.msdos.batch.nt
:: /browse_thread/thread/f819acd4582d5de3/8c81192068307388
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
PUSHD "%USERPROFILE%\"
IF EXIST COLOR DEL /F /Q /A COLOR > NUL 2>&1
IF EXIST COLOR\ RD /S /Q COLOR > NUL 2>&1
MD COLOR
CD COLOR

SET "C="
SET "L1="
SET "L2="
SET "L3="

SET "C=%~1"
ECHO.!C!|FINDSTR /R /I "\<[0-9A-F][0-9A-F]\>" > NUL || (
ECHO. DEBE ESPECIFICARSE UN COLOR HEXADECIMAL.
ECHO. COLOR /?
EXIT /B 1
)
SET /A "TAM=0"
SET "L1=%~2"
SET "L2=%~3"
SET "L3=%~4"
IF NOT DEFINED L2 (
SET "L1="
SET "L2=%~2"
SET "L3="
)
CALL :CLEAN C
CALL :CLEAN L1
CALL :CLEAN L2
CALL :CLEAN L3
IF DEFINED L2 CALL :LEN "%L2%"
IF %TAM% GTR 150 (
ECHO.
ECHO.TEXTO COLOREADO REDUCIDO A 150 CARACTERES DE LONGITUD
ECHO.
)
IF DEFINED L2 SET "L2=%L2:~0,150%"
IF DEFINED L2 ECHO.%L3%>"%L2%"
0>NUL SET /P "_=%L1%"
FINDSTR.EXE /A:%C% /R "^" "*"
POPD
IF EXIST "%USERPROFILE%\COLOR" DEL /F /Q /A "%USERPROFILE%\COLOR" > NUL 2>&1
IF EXIST "%USERPROFILE%\COLOR\" RD /S /Q "%USERPROFILE%\COLOR" > NUL 2>&1


:LEN
SETLOCAL ENABLEEXTENSIONS DISABLEDELAYEDEXPANSION
SET /A CONTL=0
SET "WORDL=%~1"
:_LOOPL
IF NOT DEFINED WORDL (GOTO :_ENDL)
SET "WORDL=%WORDL:~1%"
SET /A CONTL +=1
GOTO :_LOOPL
:_ENDL
ENDLOCAL & SET /A TAM=%CONTL%
EXIT /B 0


:CLEAN
::deja solo caracteres dentro del rango a-z 0-9
::y espacio en el contenido de las variables.
::version 2.0
::Version modificada con mas caracteres
::solo para trabajar con funcion cecho.
::Los caracteres agregados son: # $ + - =   @
::Recibe un parametro con el nombre de la variable
::que se quiere filtrar su contenido.
::Ejemplo:
::call :clean nombreDeMiVariable
::autores: Matt Alvariz , Carlos
  @SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
  @SET "V=%*"
  @SET "S=!%V%!"
  @IF NOT DEFINED S EXIT /B 1
  @SET "V="
:LOOP
  @FOR %%* IN (
" " 0 1 2 3 4 5 6 7 8 9 A B C D E F G
H I J K L M N O P Q R S T U V W X Y Z
# $ + - =   @
) DO   @IF /I "!S:~0,1!" EQU "%%~*" SET "V=!V!!S:~0,1!"
  @SET "S=!S:~1!"
  @IF DEFINED S GOTO :LOOP
  @(ENDLOCAL & SET %*=%V%)
  @SETLOCAL ENABLEEXTENSIONS
  @EXIT /B 0





saludos!