我正在使用尝试/最后在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)
我显然错过了一些东西,但是我不知道它是什么,尤其是在这么小的代码片段中。