Ordner suchen
17.01.2011
15:08:48 Uhr2881 Aufrufe
15:08:48 Uhr
Hilfreich +1
Inhaltsverzeichnis
Der Befehl Dir listet bei der Rekursion nur genaue Orte auf, wenn Du nach Dateinamen suchst.
Dir /s /b Datei.ext Dir /s /b /a-d DateiGesamtes Verzeichnis vom Ordner auflisten
Die Ordnernamen werden aber inklusive der Unterverzeichnisse aufgelistet, auch wenn Du nur nach Ordnern suchst.Der Befehl Dir listet die gesamte Verzeichnisstruktur des Ordners auf.
Dir /s /b /ad OrdnerFiltern der Auflistung
Um nach einem Ordner zu suchen, filterst Du den Ordner aus dieser Ausgabe heraus.aber! es werden die Ordner des WurzelVerzeichnisses nicht Aufgelistet -> Ordner suchen
Dir /s /b /ad Ordner | findstr /e /i "\Ordner"Suche ab einen Pfad
Um nach einem Ordner ab einer bestimmten Verzeichnisstuktur zu suchen gibst Du den Pfad mit an. (Laufwerk D)Dir /s /b /ad D:\Ordner | findstr /e /i "\Ordner"set "Ordner=Ordner" Dir /s /b /ad D:\%Ordner% | findstr /e /i "\%Ordner%"set "Ordner=D:\Ordner" for %i in ("%Ordner%") do Dir /s /b /ad "%~i" | findstr /e /i "\%~nxi" Prüfung mit if exist
Um gezielt nach einem Ordner zu suchen reicht es dessen Existenz zu überprüfen. (Gezielt im Sinne von Bekannter Pfad des Ordners.)if exist "Ordner\" echo "Ordner"Ordner im System suchen
Um den Ordner auf dem gesamten System zu suchen packst Du den Befehl MOUNTVOL und einen Filter in eine ForSchleife. (klappt nicht vollständig, da im Wurzelverzeichnis der Ordner nicht aufgelistet wird Ordner suchen)for /f %i in ('mountvol^|find ":\"^|sort') do @dir /ad/s/b %iOrdner | findstr /e /i "\Ordner" 2>nulDirektsuche mit Platzhaltern
Um nach den Ordner zu suchen, welcher als Namensangabe im Kompletten Pfad angegeben ist, sind Platzhalter zu benutzen.Dir /s /b /ad D:\Ordne?Damit wird der Ordner nur mit einem Punkt nach dem Namen und ein FrageZeichen gefunden
Dir /s /b /ad D:\Ordner.?Direktsuche per Schleife
Die selben Platzhalter lassen sich so auch per /rekursiver Forschleife nutzen, um die gefundenen Ordner zu verarbeiten.for /d /r D:\ %i in (Ordner.?) do @echo Gefunden: %iHier wird gleich alles Dursucht und die Ausgabe gefiltert - dafür kann aber nicht direkt mit den Werten gearbeitet werden.
for /f "delims=\ " %i in ('mountvol^|find ":\"^|sort') do @vol %i >nul 2>&1 &&cmd /s /c(for /d /r "%i" %j in (*) do @echo %j)|findstr /e /i "\Ordner"for /f %i in ('mountvol^|find ":\"^|sort') do @cmd /s /c(for /d /r "%i" %j in ("Ordne?") do @echo %~j)|findstr /e /i "\Ordner"Verabeitung in der Schleife der Direktsuche
Damit die Verarbeitung in der Forschleife stattfindet, sollte der Name mit .? ergänzt werden.set "Name=Ordner" for /f "delims=\ " %i in ('mountvol^|find ":\"^|sort') do @vol %i >nul 2>&1 &&cmd /s /c(for /d /r "%i" %j in ("%Name%.?") do @if "%j" == "%~dpj%Name%" echo Bearbeite %jAlle Laufwerke Dursuchen
Um auf allen Laufwerken zu suchen, egal ob gemapptes Netzlaufwerk oder als gemappter Pfad wird die Forschleife mit A-Z abgeklappert.set "Name=Ordner" for %i in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do @vol %i: >nul 2>&1 &&cmd /s /c(for /d /r "%i:" %j in ("%Name%.?") do @if "%j" == "%~dpj%Name%" echo Bearbeite %jLokal; im Netzwerk oder gemappte Pfade dursuchen
Um die Laufwerke seperat abzusuchen sollten diese Auflistungen entsprechend Ihrer Laufwerkszuordnung in der Forschleife ergänzt werdenmountvol|find ":\" net use|find ":" subst set "Name=Ordner" for /f "delims=\ " %i in ('mountvol ^|find ":\" ^|sort ^&net use ^|find ":" ^&subst') do @vol %i >nul 2>&1 &&cmd /s /c(for /d /r "%i" %j in ("%Name%.?") do @if "%j" == "%~dpj%Name%" echo Bearbeite %jGruß Phil





