Zu lange Pfade und Dateien ausgeben
Hallo beisammen,
ich kämpfe gerade mit einem kleinen Problem.
In einer unserer Außenstellen gibt es eine "gewachsene" Verzeichnisstruktur, die stellenweise sehr tief verschachtelt ist und auch ungewöhnlich lange Ordner-Namen beinhaltet.
Beim Wiederstellen einer Datei aus einer Sicherung habe ich festgestellt, dass dabei offenbar an manchen Stellen die 255-Zeichen Grenze überschritten wird und man daher ziemliche Probleme mit dem Zugriff auf diese Datei hat.
Ich bräuchte nun ein Script, welches rekursiv durch das Laufwerk wandert und mir den Pfad und die maximale Zeichenlänge des tiefsten Pfades z.B. in eine CSV ausgibt, damit ich die möglichen Problem-Ordner aussortieren und ggf. umbenennen kann.
Also quasi bei
Z:\blaqlbla\blalalfblal\blalblbala\hamptidampti\doofes_pdf.pdf eben den kompletten Pfad und die Zeichenlänge (also 49 in dem Fall)
Geht sowas überhaupt?
Hat sowas vielleicht einer schon mal gebraucht ?
ich kämpfe gerade mit einem kleinen Problem.
In einer unserer Außenstellen gibt es eine "gewachsene" Verzeichnisstruktur, die stellenweise sehr tief verschachtelt ist und auch ungewöhnlich lange Ordner-Namen beinhaltet.
Beim Wiederstellen einer Datei aus einer Sicherung habe ich festgestellt, dass dabei offenbar an manchen Stellen die 255-Zeichen Grenze überschritten wird und man daher ziemliche Probleme mit dem Zugriff auf diese Datei hat.
Ich bräuchte nun ein Script, welches rekursiv durch das Laufwerk wandert und mir den Pfad und die maximale Zeichenlänge des tiefsten Pfades z.B. in eine CSV ausgibt, damit ich die möglichen Problem-Ordner aussortieren und ggf. umbenennen kann.
Also quasi bei
Z:\blaqlbla\blalalfblal\blalblbala\hamptidampti\doofes_pdf.pdf eben den kompletten Pfad und die Zeichenlänge (also 49 in dem Fall)
Geht sowas überhaupt?
Hat sowas vielleicht einer schon mal gebraucht ?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 205623
Url: https://administrator.de/contentid/205623
Ausgedruckt am: 13.11.2024 um 07:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo hushpuppies,
dieses Skript ist nicht das schnellste, wirft aber alle Pfadlängen vollständig aus. Ich hab's allerdings nicht an überlangen Pfaden getestet, das packt die Forschleife vielleicht nicht mehr.
Vielleicht hat ja jemand noch eine schnellere Lösung.
Gruss!
€dit: etwas mehr speed mit delayed expansion.
dieses Skript ist nicht das schnellste, wirft aber alle Pfadlängen vollständig aus. Ich hab's allerdings nicht an überlangen Pfaden getestet, das packt die Forschleife vielleicht nicht mehr.
@echo off&setlocal
for /r %%i in (*) do (
for /f "delims=:" %%i in ('^(echo("%%~i"^&echo(^)^|findstr /o $') do set /a len=%%i-5
setlocal enabledelayedexpansion
echo !len! %%~i
endlocal
)
Vielleicht hat ja jemand noch eine schnellere Lösung.
Gruss!
€dit: etwas mehr speed mit delayed expansion.