【发布时间】:2010-03-12 23:19:17
【问题描述】:
我正在寻找一种在 PowerShell 会话退出时自动执行一些清理任务的方法。因此,例如在我的配置文件中,我启动了一个需要在后台运行以执行大量任务的进程,并且我想在关闭控制台时自动关闭该进程。
PowerShell 在关闭会话时是否会像在显示提示时自动调用 prompt 那样自动调用某些函数?
【问题讨论】:
标签: powershell
我正在寻找一种在 PowerShell 会话退出时自动执行一些清理任务的方法。因此,例如在我的配置文件中,我启动了一个需要在后台运行以执行大量任务的进程,并且我想在关闭控制台时自动关闭该进程。
PowerShell 在关闭会话时是否会像在显示提示时自动调用 prompt 那样自动调用某些函数?
【问题讨论】:
标签: powershell
您可以使用Register-EngineEvent cmdlet 将事件处理程序附加到Exiting 事件:
Register-EngineEvent PowerShell.Exiting -Action { ... }
但是请注意,如果您关闭控制台窗口,则不会触发此事件。
【讨论】:
exit。也许别人有想法,否则我需要习惯exit ;)
-SupportEvent 以防止PowerShell 在shell 启动时打印出事件数据。 -- 或者通过管道发送到Out-Null。
Invoke-Expression "function $([char]4) { exit }" 这允许我通过按 Ctrl+D 和 Enter 退出 PowerShell。不完美,但足够短,可以避免使用 X 按钮。
exit比点击x按钮容易。