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 ?
Please also mark the comments that contributed to the solution of the article
Content-Key: 205623
Url: https://administrator.de/contentid/205623
Printed on: April 25, 2024 at 06:04 o'clock
2 Comments
Latest comment
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.