问题描述
当脚本执行Read-Host
cmdlet时,关闭窗口不会激活finally
块。以下是一个任意但功能最少的示例。我正在使用PowerShell 5.0。 Beep()只是为了使finally块执行明显。
try {
$value= Read-Host -Prompt "Input"
sleep 5
} finally {
[Console]::Beep(880,1000)
}
- 如果您在
Read-Host
期间单击红色X来关闭窗口finally
块将不会执行。 - 如果您在
sleep
期间单击红色X来关闭窗口,finally
块将执行。 - 如果您随时用Ctrl-C中断,则
finally
块将执行。
在finally
期间关闭窗口时,为什么没有执行Read-Host
块,我是否缺少一些基本的知识?
完整案例涉及在Amazon Snowball设备上启动服务,并且如果脚本关闭则需要停止该服务。完整案例的行为反映了上面的示例案例。
编辑:由于评论说$ input是保留变量,因此将变量从$ input更改为$ value。不会改变行为。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)