我使用的是Powershell 4.0,并且尝试使用-ErrorVariable参数填充变量,以便可以检查.count属性并查看上一步是否发生了错误。我尝试使用here指南,但似乎无法正常工作。

我在脚本的这一部分中调用了xml文件

$getError = $null
[xml]$a = Get-Content -ErrorVariable $getError .\test.xml
Write-Host $getError.count

我有一个步骤来提取格式错误的xml文件,但是即使该步骤失败,$getError的评估值仍为$ null。

最佳答案

您没有得到任何东西,因为获取内容成功。失败的是随后返回[XML]的转换,但是您不能使用ErrorVariable捕获它。
这对您有用吗?

$getError = @()
try { [xml]$a = Get-Content  $getError .\test.xml -ErrorAction Stop }
 catch { $getError += $Error[0] }
Write-Host $getError.count

关于powershell - 用-ErrorVariable填充变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20434054/

10-12 19:40