Arrays PowerShell正在向阵列中添加错误

Arrays PowerShell正在向阵列中添加错误,arrays,powershell,Arrays,Powershell,因此,我的大项目是找到一种查找过长的UNC路径名的方法,一旦我有了这些信息,就将它们用作映射驱动器,这样我就可以运行Get-Child information(获取该点以下的子信息) 我有下面的代码,它让我写入符合该条件的文件夹,并向我显示UNC路径,我想将该信息添加到可以回调的数组中 以下是我目前掌握的代码: Get-ChildItem "\\Server\Share" -recurse -ErrorAction SilentlyContinue -ErrorVariable err for

因此,我的大项目是找到一种查找过长的UNC路径名的方法,一旦我有了这些信息,就将它们用作映射驱动器,这样我就可以运行Get-Child information(获取该点以下的子信息)

我有下面的代码,它让我写入符合该条件的文件夹,并向我显示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的新手,有人能告诉我正确的方向吗?

添加一个变量
$results
来保存您想要捕获的错误并将其导出到文件中。以及获取带有错误消息的字符串-
$errorRecord.TargetObject
,而不是整个错误对象

$results=@()
获取子项“\\Server\Share”-recurse-ErrorAction SilentlyContinue-ErrorVariable err
foreach($errorRecord中的$err)
{
if($errorRecord.Exception-为[System.IO.PathTooLongException])
{
写入警告($errorRecord.TargetObject)
$results+=,$errorRecord.TargetObject
}
其他的
{
写入错误-ErrorRecord$ErrorRecord
}
}
$results |输出文件C:\temp\ErrorArray.txt

感谢您的回复,但这不会在文本文件中生成任何信息……写入输出文件时是否出现错误?根据OS/UAC设置,您可能无法写入C:的根目录,请根据修改后的示例尝试更深的位置。我将添加到
$results
数组的结果修改为
$errorRecord.TargetObject
,因为原始消息没有帮助。你使用的是什么PS版本?没有“.message”的情况下工作得很好。我在版本3上。谢谢你的帮助。