none
Texto parpadeante en bat (CMD) en Windows 10 RRS feed

  • Pregunta

  • Hola.

    Alguien sabe como hacer un texto parpadeante en un script .bat, antiguamente se podía hacer, no se si ahora es posible. Quiero que el mensaje sea en texto parpadeante y no logro encontrar la forma.

    Gracias.

    lunes, 9 de mayo de 2016 13:19

Respuestas

  • Buenas,

    En powershell puedes utilizar:

     1..15 | foreach {[system.console]::ForegroundColor = $_; write-host "Warning !!!!`r" -nonewline; sleep 1}

    o declararte esta función:

    function Blink-Message {
     param([String]$Message,[int]$Delay,[int]$Count,[ConsoleColor[]]$Colors) 
        $startColor = [Console]::ForegroundColor
        $startLeft  = [Console]::CursorLeft
        $startTop   = [Console]::CursorTop
        $colorCount = $Colors.Length
        for($i = 0; $i -lt $Count; $i++) {
            [Console]::CursorLeft = $startLeft
            [Console]::CursorTop  = $startTop
            [Console]::ForegroundColor = $Colors[$($i % $colorCount)]
            [Console]::WriteLine($Message)
            Start-Sleep -Milliseconds $Delay
        }
        [Console]::ForegroundColor = $startColor
    }

    y después lanzar: 

    Blink-Message !!!Warning!!! 250 20 Red, White, DarkRed, Green

    Un saludo.

    • Marcado como respuesta ytvmeem lunes, 9 de mayo de 2016 18:05
    lunes, 9 de mayo de 2016 13:45

Todas las respuestas

  • Buenas,

    En powershell puedes utilizar:

     1..15 | foreach {[system.console]::ForegroundColor = $_; write-host "Warning !!!!`r" -nonewline; sleep 1}

    o declararte esta función:

    function Blink-Message {
     param([String]$Message,[int]$Delay,[int]$Count,[ConsoleColor[]]$Colors) 
        $startColor = [Console]::ForegroundColor
        $startLeft  = [Console]::CursorLeft
        $startTop   = [Console]::CursorTop
        $colorCount = $Colors.Length
        for($i = 0; $i -lt $Count; $i++) {
            [Console]::CursorLeft = $startLeft
            [Console]::CursorTop  = $startTop
            [Console]::ForegroundColor = $Colors[$($i % $colorCount)]
            [Console]::WriteLine($Message)
            Start-Sleep -Milliseconds $Delay
        }
        [Console]::ForegroundColor = $startColor
    }

    y después lanzar: 

    Blink-Message !!!Warning!!! 250 20 Red, White, DarkRed, Green

    Un saludo.

    • Marcado como respuesta ytvmeem lunes, 9 de mayo de 2016 18:05
    lunes, 9 de mayo de 2016 13:45
  • Hola.

    Gracias, funciona en PowerShell perfectamente, lo que me pasa es que llamo a PowerShell desde el bat y no sale de PowerShell, jejejejeje, es que yo acostumbrado al dos y cmd no me aclaro con PowerShell, realice algunos programitas en Gwbasic y Qbasic (en aquellos tiempos), y me negué a aprender nada mas y así sigo jajajajaja, estancado en el tiempo. 

    Si ejecuto el bat desde PowerShell seguramente funcione, lo probare.

    Saludos

    lunes, 9 de mayo de 2016 18:04