dervolker
Goto Top

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
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/contentid/173697

Ausgedruckt am: 22.11.2024 um 10:11 Uhr

Skyemugen
Skyemugen 26.09.2011 um 15:21:55 Uhr
Goto Top
Aloha,

hm, kurze Nachfrage, es soll wirklich dir /s und nicht (wie meist bevorzugt) dir /b /s sein?

edit: Willst du nun Verzeichnisse auflisten oder Verzeichnisse mit Dateien? (ich schätze letzteres aber lieber noch einmal genau nachgefragt)

greetz André
Friemler
Friemler 26.09.2011 um 16:31:15 Uhr
Goto Top
Hallo Volker,

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
DerVolker
DerVolker 26.09.2011 um 17:02:07 Uhr
Goto Top
Hallo,

kurz: GENIAL!!!

Vielen Dank,

Volker
Skyemugen
Skyemugen 26.09.2011 um 17:49:47 Uhr
Goto Top
Aloha Friemler,
[½OT]
versuch' das mal mit dir /s wie der TE im EP angab (darum nämlich meine Nachfrage aber hat ihn ja nicht interessiert) - ich poste demnächst jedenfalls keine Endlösungen mehr, wenn der EP nicht eindeutig ist face-wink

btw: Warum hast du dich für drag&drop entschieden?

greetz André
[/½OT
Friemler
Friemler 26.09.2011 um 19:52:13 Uhr
Goto Top
Hi André,

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 face-wink .

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