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.

Wenn man die Batch starten und in eine Datei „piped“, dann lässt sich das auch noch schön in Excel weiter verarbeiten.

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

Tags:,