我希望使用 powershell 在终端的右上角有一个时钟,与下面提供的 bash 脚本相似(如果不完全相同)。
Bash 片段:
while true; do echo -ne "\e[s\e[0;$((COLUMNS-7))H\e[30;47m$(date +'%H:%M:%S')\e[0m\e[u"; sleep 1; done &
我想要 PowerShell 中类似的东西。我试过这个:
Clear-Host
function Show-Clock {
$width = [console]::WindowWidth
$height = [console]::WindowHeight
$x = $width - 8 # Width for "HH:MM:SS"
$y = 0
while ($true) {
$time = (Get-Date).ToString("HH:mm:ss")
[console]::SetCursorPosition($x, $y)
Write-Host "$time" -BackgroundColor White -ForegroundColor Black -NoNewline
Start-Sleep -Seconds 1
}
}
Show-Clock
它可以工作,但你不能在终端运行时使用我想要的。 如有任何帮助,我们将不胜感激!
编辑1:
现在我使用
Start-Process -NoNewWindow
来模仿与号 (&) 功能,但这也不起作用:
Clear-Host
function Show-Clock {
$width = [console]::WindowWidth
$height = [console]::WindowHeight
$clockPositionX = $width - 8 # Width for "HH:MM:SS"
$clockPositionY = 0
while ($true) {
$time = (Get-Date).ToString("HH:mm:ss")
[console]::SetCursorPosition($clockPositionX, $clockPositionY)
Write-Host "$time" -BackgroundColor White -ForegroundColor Black -NoNewline
Start-Sleep -Seconds 1
}
}
Start-Process powershell.exe -ArgumentList "-NoProfile -ExecutionPolicy Bypass -Command 'Show-Clock'" -NoNewWindow
你找过Jeff Hicks吗,他已经开发了一个解决方案,你确实需要在终端之外的框架中运行。