繁体   English   中英

在 Windows PowerShell 中使用定时器

[英]Using timers in Windows PowerShell

我试图弄清楚如何在 Windows PowerShell 中使用计时器。 我希望我的脚本在一定时间内运行命令/任务,停止任务,然后将结果 output 保存到 txt 文件中。 这是我到目前为止所拥有的:

$timer = [Diagnostics.Stopwatch]::StartNew()

while ($timer.elapsed.totalseconds -lt 10){

netstat 169.254.219.44 

$timer.stop() | 
Out-File $PSScriptroot\connections.txt

break
}

脚本所做的只是在终端中运行命令,直到我按下 ctrl+c。 一旦我按下 ctrl+c ,它就会停止,然后输出 .txt 文件。 但是.txt 文件是空白的。 我花费的时间比我应该试图弄清楚的要多得多。 我是 Windows PowerShell 的新手,只是想看看我能做什么。 这个脚本没有真正的目的。 这简直让我发疯,我无法弄清楚......

您是否希望连续重复测试直到经过允许的时间? 只要条件($timer.elapsed.totalseconds -lt 10)为真,您的 while {} 块中的任何代码都会重复。 正如所说,不要停止循环中的计时器。

$timer = [Diagnostics.Stopwatch]::StartNew()
while ($timer.elapsed.totalseconds -lt 10) {
    # Code in here will repeat until 10 seconds has elapsed
    # If the netstat command does not finish before 10 seconds then this code will 
    # only run once

    # Maybe separate each netstat output in the file with date/time
    "*** " + (Get-Date) + " ***" | Out-File $PSScriptroot\connections.txt -Append
    netstat 169.254.219.44 | Out-File $PSScriptroot\connections.txt -Append
}

$timer.stop() 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM