Batch: Pfadlängen ermitteln
Oftmals haben Programme Probleme wenn die Verzeichnistiefe bzw. der Name einer Datei größer als 256 Zeichen ist. Mit folgendem kleinen Batch-Script kann man die problematischen Fälle aufdecken.
Die Variablen maxSize und searchPath sind nach den eingenen Bedürfnissen anzupassen.
cls
@echo off
set /a maxSize=80
set searchPath="C:\temp\"
goto main
:count
setlocal EnableDelayedExpansion
set "WorstCaseLen=500"
set "TestString=%~1"
For /L %%i in (%WorstCaseLen%,-1,1) do (
if not defined myStrLen if "!TestString:~%%i,1!" NEQ "" Set /a myStrLen=1+%%i
)
if %myStrLen% GTR %maxSize% (echo "%TestString%",%myStrLen% )
goto :eof
:main
for /r "%searchPath%" %%i in (*) do (
call :count "%%i"
)
goto :ende
:ende
Wenn man die Batch starten und in eine Datei „piped“, dann lässt sich das auch noch schön in Excel weiter verarbeiten.
Tags:dateinamen, verzeichnistiefe