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 Sep 26, 2011 um 18:52:34 Uhr
Ich verschiebe mal die Frage von "Dont use Windows" nach "Batch & Shalala".

Content-Key: 173697

Url: https://administrator.de/contentid/173697

Printed on: April 24, 2024 at 19:04 o'clock

Member: Skyemugen
Skyemugen Sep 26, 2011 at 13:21:55 (UTC)
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é
Member: Friemler
Friemler Sep 26, 2011 at 14:31:15 (UTC)
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
Member: DerVolker
DerVolker Sep 26, 2011 at 15:02:07 (UTC)
Goto Top
Hallo,

kurz: GENIAL!!!

Vielen Dank,

Volker
Member: Skyemugen
Skyemugen Sep 26, 2011 at 15:49:47 (UTC)
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
Member: Friemler
Friemler Sep 26, 2011 at 17:52:13 (UTC)
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