Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Ordner suchen

Tipp Entwicklung Batch & Shell

Mitglied: pieh-ejdsch

pieh-ejdsch (Level 2) - Jetzt verbinden

17.01.2011, aktualisiert 22.02.2014, 15247 Aufrufe, 1 Danke


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 Datei

Gesamtes 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 Ordner
Filtern 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"
Das ganze kannst Du auch für die Eingabe etwas Vereinfacht machen Umgestalten.
set "Ordner=Ordner" 
Dir /s /b /ad D:\%Ordner% | findstr /e /i "\%Ordner%"
oder mitels ForSchleife.
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>nul

Direktsuche 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?
Die Namensgebung der Ordner spielt dabei eine wesentliche Rolle. Vor allem keine Punkte zu verwenden.
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: %i
Damit beim Durchforsten der Lokalen Verzeichnisse nicht erst Fehlermeldungen erscheinen, wenn ein Laufwerk ohne Medium vorhanden ist, wird der Befehl Vol zum aussortieren dieser nichtansprechbaren Laufwerke benutzt.
aa86672cb8bd48c11fec6f721df9927a - Klicke auf das Bild, um es zu vergrößern
(dieses Unterdrücken der Fehlermeldung:
Es befindet sich kein Datenträger im Laufwerk.
funktioniert aber nur, wenn die For-Variable mit dem Laufwerksbuchstaben nicht zu %~di Aufgelöst wird.)
for %i in (A:\) do vol %~di
Hier 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"
abgewandeldte Variante2 (geht auch nur wenn Platzhalter in der Rekursiven Schleife sind)
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 %j)

Alle 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 %j)

Lokal; im Netzwerk oder gemappte Pfade dursuchen

Um die Laufwerke seperat abzusuchen sollten diese Auflistungen entsprechend Ihrer Laufwerkszuordnung in der Forschleife ergänzt werden
mountvol|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 %j)
[/Edit Abschlussklammern eingefügt]

Gruß Phil
Ähnliche Inhalte
Microsoft
Im ordner nach dateien aus excel liste suchen (2)

Frage von tioloco zum Thema Microsoft ...

Batch & Shell
gelöst Nach bestimmten Ordner namen suchen und in einem anderem Pfad kopieren (8)

Frage von erdgnrft zum Thema Batch & Shell ...

Windows Server
Ordner umbenennen nicht möglich (8)

Frage von carbon1X zum Thema Windows Server ...

Neue Wissensbeiträge
Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
VPN Tunnel aufbauen (16)

Frage von Hajo2006 zum Thema LAN, WAN, Wireless ...

Router & Routing
ASUS RT-N18U mit VPN Client hinter Fritzbox - Portforwarding (14)

Frage von marshall75000 zum Thema Router & Routing ...

Microsoft Office
Saubere HTML aus Word-Dokument (14)

Frage von peterpa zum Thema Microsoft Office ...

E-Mail
gelöst Probleme beim E-Mail Empfang (12)

Frage von TommyB83 zum Thema E-Mail ...