PowerShell向数组添加错误

时间:2014-06-09 09:10:29

标签: arrays powershell

所以我的大项目是提出一种查找太长的UNC路径名的方法,一旦我掌握了这些信息,就将它们用作映射驱动器,以便我可以在该点之下运行Get-Child信息。 / p>

我有以下代码,它让我写了符合该条件的文件夹,并向我显示UNC路径,我想将该信息添加到可以回调的数组

这是我目前的代码:

Get-ChildItem "\\Server\Share" -recurse -ErrorAction SilentlyContinue -ErrorVariable err

foreach ($errorRecord in $err)
{
    if ($errorRecord.Exception -is [System.IO.PathTooLongException])
    {
        Write-Warning ($errorRecord.TargetObject)
        $ErrorArray = $errorRecord
    }
    else
    {
        Write-Error -ErrorRecord $errorRecord
    }
}

Out-File C:\ErrorArray.txt

PS的新手,有谁可以请我指出正确的方向吗?

1 个答案:

答案 0 :(得分:1)

添加变量$results以保存要捕获的错误并将其输出到文件中。除了抓取带有错误消息的字符串 - $errorRecord.TargetObject - 而不是整个错误对象。

$results = @()

Get-ChildItem "\\Server\Share" -recurse -ErrorAction SilentlyContinue -ErrorVariable err

foreach ($errorRecord in $err)
{
    if ($errorRecord.Exception -is [System.IO.PathTooLongException])
    {
        Write-Warning ($errorRecord.TargetObject)
        $results += ,$errorRecord.TargetObject
    }
    else
    {
        Write-Error -ErrorRecord $errorRecord
    }
}

$results | Out-File C:\temp\ErrorArray.txt