相关疑难解决方法(0)

使用Ctrl-C跳过Powershell最终块

我正在使用尝试/最后在Powershell中编写监视脚本,以在脚本结束时记录消息。该脚本旨在无限期运行,因此我想要一种跟踪意外退出的方法。

我检查过的所有其他StackOverflow发布和帮助页面都指出:

即使您使用CTRL + C来停止脚本,Final块也会运行。如果Exit关键字从Catch块中停止脚本,则Final块也将运行。

实际上,我还没有发现这是真的。我正在使用以下人为设计的示例进行测试:

Try {
    While($True) {
        echo "looping"
        Start-Sleep 3
    }
} Finally {
    echo "goodbye!"
    pause
}
Run Code Online (Sandbox Code Playgroud)

无论是作为保存的脚本运行还是通过内置Powershell ISE执行时,Finally每次在Ctrl+ C(无回声,无暂停)之后都将跳过此处的块。我得到的唯一输出是:

looping
looping
...(repeat until Ctrl-C)
Run Code Online (Sandbox Code Playgroud)

我显然错过了一些东西,但是我不知道它是什么,尤其是在这么小的代码片段中。

powershell try-finally powershell-3.0

5
推荐指数
1
解决办法
1286
查看次数

标签 统计

powershell ×1

powershell-3.0 ×1

try-finally ×1