gpt4 book ai didi

Powershell - 我的倒计时有什么问题

转载 作者:行者123 更新时间:2023-12-03 00:40:28 40 4
gpt4 key购买 nike

我有一个需要两个参数的计数器脚本:

1) 计数器开始前要等待的秒数。

2) 以秒为单位的计数器持续时间。

例如,如果我输入 3,10
我希望 3 秒后计时器将从 10 倒计时到 0 并每秒将其写入输出。

这是我的脚本:

$timeBeforeStart = $args[0]
$waitSeconds = $args[1]

$startTime = get-date
$endTime = $startTime.addSeconds($waitSeconds)
$timeSpan = new-timespan $startTime $endTime
start-sleep -s $timeBeforeStart
while ($timeSpan -gt 0)
{
$timeSpan = new-timespan $(get-date) $endTime
write-host $([string]::Format("`rTime Remaining: {0:d2}:{1:d2}:{2:d2}",
$timeSpan.hours, $timeSpan.minutes, $timeSpan.seconds))
sleep 1
}

不幸的是它不起作用, sleep 似乎与计数器同时工作,而不是延迟计数器。
PS C:\> c:\555.ps1 3 10 
Time Remaining: 00:00:07
Time Remaining: 00:00:05
Time Remaining: 00:00:04
Time Remaining: 00:00:03
Time Remaining: 00:00:02
Time Remaining: 00:00:01
Time Remaining: 00:00:00
Time Remaining: 00:00:00

我也试过 开始 sleep -s 和结果相同的地方。

顺便问一下, sleep 和 "start-sleep -s"有什么区别?

最佳答案

what is the difference between sleep and "start-sleep -s"?



没有区别, sleep只是 Start-Sleep 的别名.

Unfortunately it doesn't work, the sleep seems to work simultaneity with the counter instead of delay the counter.



在获取第一个 $timeSpan 之前,您可能希望在计数器开始之前休眠。 :
start-sleep -s $timeBeforeStart

$startTime = get-date
$endTime = $startTime.addSeconds($waitSeconds)
$timeSpan = new-timespan $startTime $endTime
while ($timeSpan -gt 0)
{
# ...
}

关于Powershell - 我的倒计时有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6401632/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com