路径太长,其实不然?

路径太长,其实不然?

我尝试Get-ChildItem -Recurse对文件共享运行,但出现了一些“路径太长”的错误。但当我深入研究后,发现有些错误并非如此。

我使用 来-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"
}

上面的代码似乎运行良好,但是我从中获取的数据与错误详细信息并不完全相符。

控制台上的错误详细信息表明文件名必须少于 260 个字符,目录名必须少于 248 个字符。这很有道理。但是,记录的所有路径都是目录,其中一些甚至少于 200 个字符!

我日志中最长的是 259 个字符。这个以及其他超过 248 个字符的日志都是合理的。最短的是 186 个字符,还有很多短于 248 个字符的日志。

为什么我在目录上收到这些“路径太长”错误,而实际上这些目录并不长?错误数据是否应该告诉我一些我没在日志中记录的内容?

相关内容