首先,要么A)我没有调查到这足够硬或B)我发现一个问题,需要一些时髦的黑客。顺便说一句,这是豪华v1.0。输出重定向/捕获问题与Powershell和Try-Catch和外部EXE
这里有云:
一个星期左右前,我问了一个问题关于在PowerShell中的EXE这是没有,否则被抓住的exection输出重定向。我很快提出了“2> & 1”,它解决了这个问题。
现在我又碰到了另一个障碍,希望看到你们中的一些人可以扔到它。
我在我的代码中使用try-catch块作为一名优秀的程序员应该。当我去的地方,GPG(gnupg.org)的调用,传递给它一些命令如下:
try `
{
& $gpgExeLocation --import $keyFileName 2>&1 | out-file "theOutput.txt";
} `
-Catch `
{
write-host "$_";
}
得到了一个空白的文本文件(theOutput.txt)。
但是,如果我做同样的呼叫外try-catch块的,文本文件获取预期写入一些文本。
我想知道的是,如果输出重定向到标准输出和PowerShell陷阱异常的方式有问题 - 或者它是我的尝试catch代码开始?
,这里是我的try-catch实施
function global:try
{
param
(
[ScriptBlock]$Command = $(Throw "The parameter -Command is required."),
[ScriptBlock]$Catch = { Throw $_ },
[ScriptBlock]$Finally = {}
)
& {
$local:ErrorActionPreference = "SilentlyContinue"
trap
{
trap
{
& {
trap { Throw $_ }
&$Finally
}
Throw $_
}
$_ | & { &$Catch }
}
&$Command
}
& {
trap { Throw $_ }
&$Finally
}
};
我得到了快乐触发,并没有阅读你的代码。我会试试看看会发生什么。我很感激。 – CLR 2009-06-08 17:45:55