Dir rekursiv mit exclude - wie?
Hallo,
ich möchte unter WinXP (Eingabeaufforderung) einige Verzeichnisse auflisten und in eine Datei umlenken.
Mit "dir xyz /s >> ergebnis.txt" kein Problem, aber...
...in jedem dieser Verzeichnisse gibt es einen Ordnern (mit identischen Namen), den ich nicht erfassen möchte.
Das "dir" kann kein "exclude" wie z.B. robocopy.
Im Internet fand ich Hinweise zum "xdir", aber keinen gültigen Download.
Hat jemand eine Idee?
Viele Grüße aus dem herbstlich sonnigen Oldenburg,
Volker
ich möchte unter WinXP (Eingabeaufforderung) einige Verzeichnisse auflisten und in eine Datei umlenken.
Mit "dir xyz /s >> ergebnis.txt" kein Problem, aber...
...in jedem dieser Verzeichnisse gibt es einen Ordnern (mit identischen Namen), den ich nicht erfassen möchte.
Das "dir" kann kein "exclude" wie z.B. robocopy.
Im Internet fand ich Hinweise zum "xdir", aber keinen gültigen Download.
Hat jemand eine Idee?
Viele Grüße aus dem herbstlich sonnigen Oldenburg,
Volker
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 26.09.2011 um 20:52:34 Uhr
Ich verschiebe mal die Frage von "Dont use Windows" nach "Batch & Shalala".
Content-ID: 173697
Url: https://administrator.de/forum/dir-rekursiv-mit-exclude-wie-173697.html
Ausgedruckt am: 22.12.2024 um 20:12 Uhr
5 Kommentare
Neuester Kommentar
Hallo Volker,
meinst du sowas?
Damit werden Verzeichnisse und Dateien gelistet. Die Variablen in den Zeilen 3 u. 4 bitte anpassen. Das/die Quellverzeichnis(se) kannst du per Drag&Drop auf das Icon des Batchfiles ziehen.
Zum herausfiltern der auszunehmenden Verzeichnisse wird
Falls doch nur Verzeichnisse gelistet werden sollen, beim
Gruß
Friemler
meinst du sowas?
@echo off & setlocal
set "Protocol=Ergebnis.txt"
set "Exclude=BlaBla"
type NUL > "%Protocol%"
:Loop
dir /b /s "%~1" | findstr /v /i "\<%Exclude%\>" >> "%Protocol%"
shift
if "%~1" neq "" goto :Loop
Damit werden Verzeichnisse und Dateien gelistet. Die Variablen in den Zeilen 3 u. 4 bitte anpassen. Das/die Quellverzeichnis(se) kannst du per Drag&Drop auf das Icon des Batchfiles ziehen.
Zum herausfiltern der auszunehmenden Verzeichnisse wird
FINDSTR
mit einem regulären (Such-)Ausdruck benutzt. Der obige Code würde also Verzeichnisse und Dateien, die BlaBla[.xxx]
heißen, nicht listen (.xxx
ist ein optionaler Namensbestandteil).Falls doch nur Verzeichnisse gelistet werden sollen, beim
DIR
-Befehl noch den Parameter /a:d
ergänzen.Gruß
Friemler
Hi André,
na ja, mit
Für Drag&Drop habe ich mich entschieden, weil der TE von "einigen Verzeichnisse auflisten" sprach. Möglicherweise sind es also mehrere Verzeichnisse, von denen er den darunterliegenden Baum benötigt, das kann man doch schön mit einem Multiselect und Drag&Drop abfackeln. Wenn es doch nur ein Verzeichnis ist, ist es auch egal. Wenn es ihm nicht gepasst hätte und er hätte ein hart codiertes Verzeichnis gewollt,, hätte er die dazu notwendigen Änderungen wahrscheinlich auch selbst hinbekommen.
Gruß
Friemler
na ja, mit
DIR /S
wird das nix, ist ja klar. Aber ich bin jetzt einfach mal davon ausgegangen, dass der TE eine rohe Datei- und Verzeichnisliste benötigt und nicht noch zusätzlich die Header und Footer des DIR
-Befehls. Was soll man damit auch in einer Datei? Es laufen ja nicht nur komplette Vollpfosten auf der Welt herum. Sei mal nicht so streng mit den Usern .Für Drag&Drop habe ich mich entschieden, weil der TE von "einigen Verzeichnisse auflisten" sprach. Möglicherweise sind es also mehrere Verzeichnisse, von denen er den darunterliegenden Baum benötigt, das kann man doch schön mit einem Multiselect und Drag&Drop abfackeln. Wenn es doch nur ein Verzeichnis ist, ist es auch egal. Wenn es ihm nicht gepasst hätte und er hätte ein hart codiertes Verzeichnis gewollt,, hätte er die dazu notwendigen Änderungen wahrscheinlich auch selbst hinbekommen.
Gruß
Friemler