Um das Problem zu beheben, müssen Sie die fehlerhaften Dateien suchen, bei denen der vollständige Pfad und der Dateiname mehr als 255 Zeichen enthalten. Da das Finden der Länge in einer Batch-Datei ein bisschen wie ein Hundedinner ist, verwende ich das folgende VBScript.
Speichern Sie den folgenden Code in einer Datei mit dem Namen longpaths.vbs
. Führen Sie es an einer DOS-Eingabeaufforderung mit folgendem Pfad aus: cscript longpaths.vbs <path> <length>
Wo <path>
befindet sich der Ordner? (Vergessen Sie nicht, ihn in Anführungszeichen zu setzen, wenn Sie ein Leerzeichen haben) und <length>
wie lang der Pfad ist, über dem er markiert werden soll.
Der Code lautet wie folgt:
Option Explicit
If WScript.Arguments.Count <> 2 Then
WScript.Echo "Usage: " & WScript.ScriptName & " <path> <max length>"
WScript.Quit
End If
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FolderExists(WScript.Arguments(0)) = False Then
WScript.Echo WScript.Arguments(0) & " - Invalid path or no such folder."
WScript.Quit
End If
Dim oFolder : Set oFolder = fso.GetFolder(WScript.Arguments(0))
Dim iLength : iLength = CInt(WScript.Arguments(1))
Dim iCount : iCount = 0
WScript.Echo "Looking for paths longer than " & iLength & " characters in " & oFolder.Path
On Error Resume Next
Call ScanFolder(oFolder)
On Error Goto 0
WScript.Echo "Found " & iCount & "."
WScript.Quit
Sub ScanFolder(oScanFolder)
Dim oFile : For Each oFile in oScanFolder.Files
If Len(oFile.Path) > iLength Then
WScript.Echo oFile.Path
iCount = iCount + 1
End If
Next
For Each oFile in oScanFolder.SubFolders
Call ScanFolder(oFile)
Next
End Sub
Beispielnutzung und Ausgabe:
D:\Development>cscript longpath.vbs c:\Windows 210
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
Looking for paths longer than 210 characters in C:\Windows
C:\Windows\assembly\GAC_MSIL\Microsoft.Security.ApplicationId.Wizards.AutomaticRuleGenerationWizard.resources\6.1.0.0_en_31bf3856ad364e35\Microsoft.Security.ApplicationId.Wizards.AutomaticRuleGenerationWizard.resources.dll
Found 1.
D:\Development>
Sobald Sie die Problemdateien kennen, können Sie sie entweder so umbenennen, dass sie kürzer sind, einen der Ordner in diesem Pfad umbenennen oder (möglicherweise) ein Netzwerklaufwerk einem Unterordner in diesem Pfad zuordnen, wodurch sich die Länge des Pfads verringert.