Unterverzeichnis zählen
Hallo liebes Forum,
ich habe ein Problem und möchte Euch bitten mir zu helfen.
Benötigt wird ein Batch mit dem ich jeweils die vorhanden 2. Unterverzeichnisse (diese sind unterschiedlich benannt) zählen kann.
Als Beispiel hier ich ein Schnipsel:
for /f "delims=" %%a in ('dir /b /AD C:\TestOrdner\*.*') do set /A ordner=ordner+1
echo %ordner% Ordner
dieser funktioniert allerdings ja nur für den angegebenen Ordner. Die Unterordner haben alle einen anderen Namen. Z.B.:
C:\TestOrdner\Maier
C:\TestOrdner\Müller
C:\TestOrdner\Schulze etc.
Gibt es eine Möglichkeit die Menge der Unterordner auszugeben?
Im voraus schon einmal vielen Dank für die Hilfe
Betriebssystem: Windows 7
ich habe ein Problem und möchte Euch bitten mir zu helfen.
Benötigt wird ein Batch mit dem ich jeweils die vorhanden 2. Unterverzeichnisse (diese sind unterschiedlich benannt) zählen kann.
Als Beispiel hier ich ein Schnipsel:
for /f "delims=" %%a in ('dir /b /AD C:\TestOrdner\*.*') do set /A ordner=ordner+1
echo %ordner% Ordner
dieser funktioniert allerdings ja nur für den angegebenen Ordner. Die Unterordner haben alle einen anderen Namen. Z.B.:
C:\TestOrdner\Maier
C:\TestOrdner\Müller
C:\TestOrdner\Schulze etc.
Gibt es eine Möglichkeit die Menge der Unterordner auszugeben?
Im voraus schon einmal vielen Dank für die Hilfe
Betriebssystem: Windows 7
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 298763
Url: https://administrator.de/contentid/298763
Ausgedruckt am: 22.11.2024 um 17:11 Uhr
20 Kommentare
Neuester Kommentar
for /f "delims=:" %%a in ('dir /b /AD "C:\TestOrdner" ^| findstr /n "." 2^>nul') do set ordner=%%a
echo %ordner% Ordner
Gruß jodel32
Kein Problem nimmst du einfach das /s beim dir Befehl raus , ist oben angepasst.
Nö, was bedeutet bei dir 2. Ebene ?
für mich ist das bei
C:\TestOrdner\Maier
das Maier
für mich ist das bei
C:\TestOrdner\Maier
das Maier
Ja aber genau das macht das Skript ja oben bereits !
Ich hatte es ja wie gesagt entsprechend oben im Post modifiziert...
Zählt nur Maier,Müller und Schulze also alles was direkt in deinem Testordner liegt, keine Unterordner und auch sinst nichts anderes.
Funktioniert 1A, sorry der Fehler liegt bei dir.
Ich hatte es ja wie gesagt entsprechend oben im Post modifiziert...
Zählt nur Maier,Müller und Schulze also alles was direkt in deinem Testordner liegt, keine Unterordner und auch sinst nichts anderes.
Funktioniert 1A, sorry der Fehler liegt bei dir.
Wow, ich glaube du brauchst mal eine neue Ladung Kaffee *heiße Tasse rüberschieb*
@echo off & setlocal enabledelayedexpansion
set "folder=C:\Testordner"
set ordner=0
REM Alle Ordner der ersten Ebene des Startordners durchlaufen
for /f "delims=" %%a in ('dir /b /AD "%folder%"') do (
REM Zählvariable für Unterordner auf 0 setzen
set sub=0
REM Zähle die Unterordner des aktuellen Ordners der ersten Ebene
for /f "delims=:" %%b in ('dir /b /AD "%folder%\%%a" ^| findstr /n "." 2^>nul') do set sub=%%b
REM Addiere die Anzahl der Unterordner zu einer Variable die am Ende die Gesamtanzahl enthält
set /a ordner+=!sub!
)
echo !ordner! Ordner
Zitat von @karla123:
Könntest du mir bitte noch erklären wie der Batch funktioniert? Wo wird z.B. die 3. Ebene ausgewählt?
Skript ist nun mit Kommentaren versehen.Könntest du mir bitte noch erklären wie der Batch funktioniert? Wo wird z.B. die 3. Ebene ausgewählt?
Für das Zählen der Unterordner wird eine Methode mit findstr angewendet welche vor jede Zeile mit Inhalt die Zeilenzahl setzt, diese wird dann in der zweiten Schleife in die Variable sub geschrieben.
Kein Problem. Zwischen Zeile 11 und 12 noch folgende Zeile zusätzlich einfügen:
'dir /b /s /AD "%folder%\%%a" | findstr /iec:"Zahl" >nul || echo Ordner 'Zahl' nicht vorhanden in "%folder%\%%a"
Sonst noch Wünsche ? Darf's noch was Sahne sein
Statt der obigen Zeile, diese:
jodel
Statt der obigen Zeile, diese:
for /f "delims=" %%c in ('dir /b /AD "%folder%\%%a"') do (
if not exist "%folder%\%%a\%%c\Zahl" echo In Ordner '%folder%\%%a\%%c\' ist kein Ordner 'Zahl'.
)
Ebenso