尝试.. catch ..在读取主机期间最终失败

问题描述

当脚本执行Read-Host cmdlet时,关闭窗口不会激活finally块。以下是一个任意但功能最少的示例。我正在使用PowerShell 5.0。 Beep()只是为了使finally块执行明显。

try {
    $value= Read-Host -Prompt "Input"
    sleep 5
} finally {
    [Console]::Beep(880,1000)
}
  1. 如果您在Read-Host期间单击红色X来关闭窗口 finally块将不会执行。
  2. 如果您在sleep期间单击红色X来关闭窗口, finally块将执行。
  3. 如果您随时用Ctrl-C中断,则finally块将执行。

finally期间关闭窗口时,为什么没有执行Read-Host块,我是否缺少一些基本的知识?

完整案例涉及在Amazon Snowball设备上启动服务,并且如果脚本关闭则需要停止该服务。完整案例的行为反映了上面的示例案例。

编辑:由于评论说$ input是保留变量,因此将变量从$ input更改为$ value。不会改变行为。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)