【发布时间】:2010-10-04 17:44:35
【问题描述】:
我想在执行任何外部控制台应用程序(设置一些环境变量)之前做一些整理工作。
在我的网络研究中,在 $host 中覆盖 NotifyBeginApplication() 似乎可以解决问题。不幸的是,我不知道该怎么做。
这就是我想要做的事情......
$host = $host | `
Add-Member -force -pass -mem scriptmethod NotifyBeginApplication `
{ $env:_startTime = [datetime]::now; $env:_line = $myInvocation.Line }
这不起作用,因为 $host 是常量,而且无论如何它可能是错误的方法。
我能够找到的文档指出,在执行任何“旧”控制台应用程序之前调用此函数,但另一个博客条目说它仅在没有 I/O 重定向的控制台应用程序中调用。
那么,这是正确的方法吗?如果是这样,我将如何覆盖该函数?
如果不是,那怎么办?
我见过的唯一可行的方法是完全实现自定义 PSHost。使用现有的可用源代码,这似乎是可能的,但超出了我想要尝试的范围。
【问题讨论】:
标签: command-line powershell user-interface