Powershell: Update current output line Powershell: Update current output line powershell powershell

Powershell: Update current output line


Use carriage return to return to the start of the line: `r

See this: http://ss64.com/ps/syntax-esc.html

And definition of carriage return: http://en.wikipedia.org/wiki/Carriage_return

If you want to clear a line, that and a load of spaces. Otherwise you can overwrite stuff.

I can't really write up an example here as it's SO's code character, but put it at the start of the "world" string and it should work.

Hope this helps!


The solution is to use carriage return while writing to the host, as noted by others.Make sure to use the NoNewLine flag whith write-host or it will not work.

Carriage Return is acheived by using: `r

Here's a small example illustrating this answer:

$up = $true$finish = $false$timeout = 50Write-Host "Updating" -NoNewlinedo {    for ($i=0;$i -le 100;$i++){        if ($i -eq 100){$up = !$up}        if ($up){            $str = ""            $x=99-$i            for($z=0;$z -le $i;$z++){$str+="."}            for($y=0;$y -le $x;$y++){$str+=" "}            Write-host "`rUpdating$str" -NoNewline            Start-Sleep -Milliseconds $timeout        }else{            $str = ""            $x=99-$i            for($y=0;$y -le $x;$y++){$str+="."}            for($z=0;$z -le $i;$z++){$str+=" "}            Write-host "`rUpdating$str" -NoNewline            Start-Sleep -Milliseconds $timeout        }    }    if ($timeout -le 0){$finish = $true}    $timeout-=10} until ($finish)$str = ""for ($i=0;$i -le 93;$i++){$str+=" "}Write-Host "`rUpdate Complete!$str"Read-Host "Press [ENTER] to close this Window"