我正在使用powershell 4.0,我正在尝试使用-ErrorVariable参数来填充变量,以便我可以检查.count属性并查看上一步中是否发生了错误。我试过使用指南here,但似乎无法让它发挥作用。
我有脚本的这部分调用xml文件
$getError = $null
[xml]$a = Get-Content -ErrorVariable $getError .\test.xml
Write-Host $getError.count
我有一个错误的xml文件的步骤,但$getError
的价值仍然是$ null,即使步骤失败。
答案 0 :(得分:6)
除了@mjolinor所说的,你还要将$ getError的值传递给-ErrorVariable参数。要使用-ErrorVariable,您需要传递不包含$的变量的名称。
$getError = $null
[xml]$a = Get-Content -ErrorVariable getError .\test.xml
Write-Host $getError.count
答案 1 :(得分:1)
你没有得到任何东西,因为Get-Content成功了。失败的是后续转换为[XML],但你不能用ErrorVariable来捕获它 这对你有用吗?
$getError = @()
try { [xml]$a = Get-Content $getError .\test.xml -ErrorAction Stop }
catch { $getError += $Error[0] }
Write-Host $getError.count