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:,