Discussion:
Batchprogramm und rekursives Durchlaufen von Verzeichnissen?
(zu alt für eine Antwort)
Erhard Ducke
2003-07-27 08:41:50 UTC
Permalink
Hallo!
Ich möchte mittels Batchprogramm wildcardgsteuert Verzeichnisse und
deren Unterverzeichnisse durchlaufen, um mit dort der Wildcard
entsprechenden Dateien diverse Operationen zu durchlaufen...
Gibts Tipps zu solchen Programmen?
Hat jemand hier sowas vorliegen oder selbst programmiert und kann es
zur Verfügung stellen?
Vielen Dank für Tipps!
--
Gruß Erhard Ducke

Mailkontakt über uhmoz6hk02-Klammeraffe-sneakemail-Punkt-com
Peter Ikier
2003-07-28 07:18:31 UTC
Permalink
Post by Erhard Ducke
Hallo!
Ich möchte mittels Batchprogramm wildcardgsteuert Verzeichnisse und
deren Unterverzeichnisse durchlaufen, um mit dort der Wildcard
entsprechenden Dateien diverse Operationen zu durchlaufen...
Gibts Tipps zu solchen Programmen?
Hat jemand hier sowas vorliegen oder selbst programmiert und kann es
zur Verfügung stellen?
Hallo, Erhard!

Einfachste Variante: for-Schleife rekursiv ausführen:

<Zitat src="help for">
FOR /R [[Laufwerk:]Pfad] %Variable IN (Satz) DO Befehl [Parameter]

Der FOR-Befehl wird ausgehend vom Verzeichnis [Laufwerk:]Pfad (als
Stammverzeichnis) für jedes darunterliegende Verzeichnis ausgeführt.
Wenn kein Verzeichnis nach der /R-Option angegeben ist, wird das aktuelle
Verzeichnis verwendet. Wenn der Satz nur einen einzelnen Punkt als
Zeichen (.) enthält, wird nur die Verzeichnisstruktur aufgelistet.
</Zitat>

Bei komplizierteren Sachen rufst du für jedes Verzeichnis die Batchdatei
erneut auf:

-----------8<-----------------------------
rem Dateiname: rekdir.bat
setlocal
chdir %1
FOR /D %%d in (%dirmask) do call rekdir.bat %d
rem Weitere Parameter nach Belieben...

rem sicherstellen, dass wir wieder im aktuellen Verzeichnis landen
rem (das hat evtl. ein Unter-Aufruf geaendert).
chdir %1
rem Jetzt die evtl. vorhandenen Dateien verarbeiten.
rem Dazu wird hier eine weitere Batch-Datei verwendet.
for %%f in (%filemask) do something.bat %f
-----------8<-----------------------------

Die Hilfe zu for ("help for") ist extrem hilfreich... 8-)

Gruß
pi
--
Ein Kreis ist überall rund, auch in den Ecken!
Erhard Ducke
2003-07-28 18:06:02 UTC
Permalink
...gute Tipps...
Die Hilfe zu for ("help for") ist extrem hilfreich... 8-)
Hallo Peter!

Vielen Dank für die Tipps!
Es kann ja so einfach sein, wenn man die Hilfetexte liest...;-)
Die Frage ist vorher nur, *welchen* Befehl man dazu aussucht...
Weißt du, ob es irgendwo einen *zusammenhängenden* Text gibt, der die
Kommandozeilenbefehle erläutert?
Die A-Z-Referenz auf den MS-Seiten hab ich bereits gefunden, aber
jeden Befehl einzeln ausdrucken, ist recht mühsam...
--
Gruß Erhard Ducke

Mailkontakt über uhmoz6hk02-Klammeraffe-sneakemail-Punkt-com
Peter Ikier
2003-07-29 06:31:56 UTC
Permalink
Hallo, Erhard!
Post by Erhard Ducke
...gute Tipps...
Die Hilfe zu for ("help for") ist extrem hilfreich... 8-)
Hallo Peter!
Vielen Dank für die Tipps!
Es kann ja so einfach sein, wenn man die Hilfetexte liest...;-)
"Wenn nichts anderes mehr hilft, lies das Handbuch!" 8-) SCNR
Post by Erhard Ducke
Die Frage ist vorher nur, *welchen* Befehl man dazu aussucht...
Weißt du, ob es irgendwo einen *zusammenhängenden* Text gibt, der die
Kommandozeilenbefehle erläutert?
Hm, ich kenne leider keinen. Das Problem ist halt, dass du mehrere
unterschiedliche Quellen für die Befehle hast.
Da sind zum einen die eingebauten Befehle von cmd.exe, wie z.B. "dir"
oder eben "for".
Dann gibt es die mitgelieferten Kommandozeilenprogramme (üblicherweise
im "c:\windows\system" zu finden) wie z.B. "sort".
Weiter kann man Perl-, Python- oder Ruby-Skripte aus dem Batch heraus
aufrufen (die Liste ist nicht vollständig!).
Und schließlich kann jeder Compiler Programme erzeugen, die per
Kommandozeile aufrufbar sind. Ich schreibe mir auch hin und wieder
Tools, die ich per Batch steuern kann; außerdem verwende ich gerne die
GNU tools wie z.B. "grep" oder "less".
Post by Erhard Ducke
Die A-Z-Referenz auf den MS-Seiten hab ich bereits gefunden, aber
jeden Befehl einzeln ausdrucken, ist recht mühsam...
Och, die meisten Befehle brauchst du sowieso selten. Von Sachen wie
CACLS oder FORMAT würde ich erstmal die Finger lassen 8-)
Eine Kurzübersicht kriegst du mit "help" auf der Kommandozeile. Mit
"help <Befehl>" kannst du dann etwas mehr zu dem speziellen Befehl
erfragen.

Übrigens sind in der aktuellen c't (seit gestern im Handel) zwei
Grundlagenartikel zu Shellbefehlen und Batchprogrammierung (allerdings
Betonung auf Grundlagen).

HTH,
pi
--
Anfaengersignatur:
Hello World!
Peter Ikier
2003-07-29 13:05:18 UTC
Permalink
Hallo, Erhard!
[Batch-Dateien]
Vielleicht kauf ich mir auch mal ein Buch zum Thema - kannst du da was
empfehlen?
Leider nein. Immer noch nicht. ;-)
Ach ja, und die GNU-Tools werd ich mir auch mal runterladen...
Viel Erfolg.

Gruß
pi
--
Bitte morsen Sie nun Ihr Passwort mit der Maus ein:
Loading...