路徑太長了,但不是嗎?

路徑太長了,但不是嗎?

我正在嘗試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"
}

上面的程式碼似乎運作得很好,但是我從中獲得的數據與錯誤詳細資訊並不完全一致。

控制台上的錯誤詳細資訊表明文件名必須小於 260 個字符,目錄名必須小於 248 個字符。然而,所有被記錄的路徑都是目錄,其中一些甚至少於 200 個字元!

我的日誌中最長的是 259 個字元。這個以及其他超過 248 個字元的都有意義。最短的是 186,還有很多比 248 更短的。

為什麼我在不存在的目錄上收到這些「路徑太長」錯誤?錯誤資料是否應該告訴我我沒有在日誌中捕獲某些內容?

相關內容