路径太长,但不是?

Isz*_*szi 6 powershell

我正在尝试Get-ChildItem -Recurse针对文件共享运行 a ,但出现了一些“路径太长”错误。但是当我深入研究它时,其中一些不是。

我正在使用-ErrorVariable将错误详细信息捕获到名为$ErrLog. 然后,以下将它们记录到 CSV:

if ($ErrLog.Length -ne 0)
{
    $ErrLog | ForEach-Object {

        # Gather details of interest.
        $ErrTarget = $_.TargetObject
        $ErrReason = $_.CategoryInfo.Reason

        # Write data to custom PowerShell object.
        $ErrObject = New-Object PSObject
        $ErrObject | Add-Member -MemberType NoteProperty -Name 'Target Path' -Value $ErrTarget
        $ErrObject | Add-Member -MemberType NoteProperty -Name 'Error Reason' -Value $ErrReason

        # Add error to log variable.
        $ErrList += $ErrObject
    }
}

# Announce number of errors, and write to log as needed.
if ($ErrList.Length -eq 0)
{
    Write-Output "No errors encountered.`n"
}
else
{
    $ErrList | Export-CSV $LogErrors -NoTypeInformation
    $ErrorsCount = $ErrList.Length
    Write-Output "Logged $ErrorsCount errors.`n"
}
Run Code Online (Sandbox Code Playgroud)

上面的代码似乎工作得很好,但我从中获得的数据并不完全符合错误细节。

控制台上的错误详细信息说文件名必须少于 260 个字符,目录名必须少于 248 个。有足够的意义。但是,所有记录的路径都是目录,其中一些甚至少于 200 个字符!

我在日志中最长的是 259 个字符。那个和其他超过 248 个字符的字符是有道理的。不过最短的是 186,还有很多比 248 短的。

为什么我在不是的目录上收到这些“路径太长”错误?是否有错误数据应该告诉我我只是没有在日志中捕获?