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"