Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: ZZZz1727z en 26 Octubre 2020, 16:47 pm



Título: Cambiar colores en batch.
Publicado por: ZZZz1727z en 26 Octubre 2020, 16:47 pm
Hay alguna forma para poner cada letra en un color distinto?


PD: No es una tarea, porque antes puse otra pregunta y pensaron que era una tarea, esto lo hago porque quiero aprender por mi cuenta.


Título: Re: Cambiar colores en batch.
Publicado por: ThunderCls en 26 Octubre 2020, 17:24 pm
Necesitas usar secuencias de escape ANSI (Windows 10)

https://pastebin.com/F1E6gDcU

Mas informacion:
https://stackoverflow.com/questions/2048509/how-to-echo-with-different-colors-in-the-windows-command-line
https://stackoverflow.com/questions/12572718/how-to-change-text-color-of-cmd-with-windows-batch-script-every-1-second
https://superuser.com/questions/749561/batch-file-change-color-of-specific-part-of-text

Saludos


Título: Re: Cambiar colores en batch.
Publicado por: .:Xx4NG3LxX:. en 26 Octubre 2020, 18:19 pm
Existe un comando llamado Colous, que te permite hacer eso y mucho, mucho más...

Desde posicionar el cursor, hasta poder hacer clicks...

Búscalo en Google....


Título: Re: Cambiar colores en batch.
Publicado por: EdePC en 26 Octubre 2020, 20:20 pm
Saludos,

Dependerá de cuan purista seas con Batch, como ya mencionaron arriba puedes usar las Secuencias de Escape Ansi que solo están disponibles en Windows 10, otra opción es usar la aplicación de terceros Colous, pero como es de terceros tienes que descargarlo para poder usar sus funcionalidades.

Por lo general en el ambiente de Administradores de Sistemas se utiliza Batch Scripting bastante purista, es decir, que sea muy compatible y sin dependencias tal como se puede ver en prestigiosos foros como MyDigitalLife o NsaneForums cuna de herramientas como LoaderByDaz, KmsPico, etc, muchas de ellas naciendo como Batchs Scripts.

Si es posible colorear texto en Batch nativo, pero puede no ser del todo "limpio" ya que se hace uso del comando FindStr, creando archivos temporales, etc. No he visto que esté muy implementado, sin embargo yo respondí un Post hace tiempo en: https://msfn.org/board/topic/181334-batch-how-to-do-a-multi-choice-selector-script/?do=findComment&comment=1179046

- La gran limitación que tiene es que se tiene que crear una carpeta con nombre igual al texto a colorear, pero el detalle está en que existen ciertas reglas para los nombres de carpeta.

Yo recomendaría más utilizar llamadas a PowerShell desde un Batch, así (Funciona desde Windows 7 en adelante):

Código
  1. @Echo Off
  2. PowerShell Write-Host -Fore Cyan -Back DarkRed Hola
  3. PowerShell Write-Host -Fore DarkGreen -Back Yellow mundo^!
  4.  
  5. Exit /B

- Puedes consultar la ayuda del comando Write-Host para ver que colores puedes usar, si quieres usar algún separador, o si prefieres no imprimir el salto de línea


Título: Re: Cambiar colores en batch.
Publicado por: .:Xx4NG3LxX:. en 27 Octubre 2020, 04:11 am
No es mi tema, pero que buena opción es la de PowerShell, te juro que no lo sabía. Pero bueno, no podría esperar menos de @EdePC... Saludos...


Título: Re: Cambiar colores en batch.
Publicado por: Mudereded401 en 13 Noviembre 2020, 22:40 pm
  Aunque quizás ya no te sirva esta respuesta, Aqui va xd.

  Yo hace tiempo encontré un programa Llamado BG.exe, Que fue creado principalmente para crear juegos Rápidos en batch (Es como Colous, Pero optimizado ya que saca las cosas muchisimo más rápido).  Entre sus funciones se encuentra lo que buscas, Y es colocar las letras de diferente color.

como por ejemplo, puedes escribir: Bg print [COLOR][COLOR] "TEXTO"

Sería: Bg Print 0a "Hola mundo"     || Esto daría como resultado letras de color verde en fondo negro

Claro, Ya que fue creado para juegos tiene cosas como empequeñar muchisimo las letras, Crear sprites, Leer las flechas del teclado, etc. Pero claro, algunas de esas funciones vienen separadas en otros .exe's que vienen con el mismo BG.exe (Como lo son Sprite.exe, Editor.exe, Sound.exe, etc)

Tristemente no les puedo pasar el link ya que es un .exe y no quiero que los mods me funeen por eso jaja