Es ist bei Dateioperationen sehr lästig, Fehlermeldungen zu bekommen, die darauf hinweisen, dass ein Pfad zu lang ist. Daher bin ich dazu übergegangen, die Verzeichnisse vor deren Bearbeitung auf zu lange Pfade zu prüfen.

function TestTooLongPath([string]$StartDir,[bool]$retunfolder = $false)
{
[bool]$myretval = $false
[int]$counterErrors = 0
Get-ChildItem -Path $StartDir -Recurse -ErrorAction SilentlyContinue -ErrorVariable err | Out-Null
foreach ($errorRecord in $err)
{
    if ($errorRecord.Exception -is [System.IO.PathTooLongException])
    {
        if ($retunfolder -eq $true) {Write-Warning "Path too long in directory '$($errorRecord.TargetObject)'."}
        $myretval = $true
        $counterErrors = $counterErrors + 1
    }
    else
    {
        Write-Error -ErrorRecord $errorRecord
    }
    if ($retunfolder -eq $true) {Write-Host "Too Long Path Count: $counterErrors"}
}
return,$myretval
}

Verwendung:
ohne Ausgabe der betroffenen Ordner:

if ((TestTooLongPath -StartDir "<PATH>") -eq $false) { Get-ChildItem -Path "<PATH>" -Recurse} else { Write-Host "Folder has too long Path" }

mit Ausgabe der betroffenen Ordner und der Anzahl der Fehler

if ((TestTooLongPath -StartDir "<PATH>" -retunfolder $true) -eq $false) { Get-ChildItem -Path "<PATH>" -Recurse} else { Write-Host "Folder has too long Path" }