Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Nur bestimmte Dateien aus Verzeichnis kopieren

Yves3 / 9 Antworten / Baumansicht Nickles

Hallo

Ist es irgendwie (mit einem Dos Befehl oder wie auch immer) möglich aus einem Verzeichnis und allen Unterverzeichnissen alle Dateien mit bestimmten Dateiendungen (*.doc *.xls *.txt) heruszukopieren?

Wäre noch cool, sonst bin ich sundenlang dran ;-)

bei Antwort benachrichtigen
REPI Yves3 „Nur bestimmte Dateien aus Verzeichnis kopieren“
Optionen

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

Y:\>xcopy /?
Kopiert Dateien und Verzeichnisstrukturen.

XCOPY Quelle [Ziel] [/A | /M] [/D[:Datum]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]
[/EXCLUDE:Datei1[+Datei2][+Datei3]...]

Quelle Die zu kopierenden Dateien.
Ziel Position und/oder Name der neuen Dateien.
/A Kopiert nur Dateien mit gesetztem Archivattribut,
ändert das Attribut nicht.
/M Kopiert nur Dateien mit gesetztem Archivattribut,
setzt das Attribut nach dem Kopieren zurück.
/D:M-T-J Kopiert nur die an oder nach dem Datum geänderten Dateien.
Ist kein Datum angegeben, werden nur Dateien kopiert,
die neuer als die bestehenden Zieldateien sind.
/EXCLUDE:Datei1[+Datei2][+Datei3]...
Gibt eine Liste von Zeichenfolgen an. Jede Zeichenfolge
sollte in einer einzelnen Zeile in der Datei angezeigt werden.
Wenn eine der Zeichenfolgen Teil des absoluten Verzeichnispfads
der zu kopierenden Datei ist, wird diese Datei vom
Kopiervorgang ausgeschlossen. Beispiel: Bei der
Zeichenfolge \obj\ oder .obj werden alle Dateien
unterhalb des Verzeichnisses OBJ bzw. alle Dateien mit
der Erweiterung .obj vom Kopiervorgang ausgeschlossen.
/P Fordert vor dem Erstellen jeder Zieldatei eine Bestätigung.
/S Kopiert Verzeichnisse und Unterverzeichnisse, die nicht leer sind.
/E Kopiert alle Unterverzeichnisse (leer oder nicht leer).
Wie /S /E. Mit dieser Option kann die Option /T geändert werden.
/V Überprüft jede neue Datei auf Korrektheit.
/W Fordert vor dem Beginn des Kopierens zu einem Tastendruck auf.
/C Setzt das Kopieren fort, auch wenn Fehler auftreten.
/I Falls Ziel nicht vorhanden ist und mehrere Dateien kopiert
werden, nimmt XCOPY an, dass das Ziel ein Verzeichnis ist.
/Q Zeigt beim Kopieren keine Dateinamen an.
/F Zeigt die Namen der Quell- und Zieldateien beim Kopieren an.
/L Listet die Dateien auf, die ggf. kopiert werden.
/G Ermöglicht das Kopieren von verschlüsselten Dateien auf ein
Ziel wo Verschlüsselung nicht unterstützt wird.
/H Kopiert auch Dateien mit den Attributen 'Versteckt' und 'System'.
/R Überschreibt schreibgeschützte Dateien.
/T Erstellt die Verzeichnisstruktur, kopiert aber keine Dateien.
Leere oder Unterverzeichnisse werden nicht kopiert. Um auch diese
zu kopieren, müssen Sie die Optionen /T /E angeben.
/U Kopiert nur Dateien, die im Zielverzeichnis vorhanden sind.
/K Kopiert Attribute. Standardmäßig wird 'Schreibgeschützt' gelöscht.
/N Beim Kopieren werden die erzeugten Kurznamen verwendet.
/O Kopiert Informationen über den Besitzer und ACL.
/X Kopiert Dateiüberwachungseinstellungen (bedingt /O).
/Y Unterdrückt die Aufforderung zur Bestätigung, dass eine
vorhandene Zieldatei überschrieben werden soll.
/-Y Fordert zur Bestätigung auf, dass eine bestehende
Zieldatei überschrieben werden soll.
/Z Kopiert Dateien in einem Modus, der einen Neustart ermöglicht.

Die Option /Y kann in der Umgebungsvariable COPYCMD vordefiniert sein.
Sie kann mit /-Y in der Befehlszeile deaktiviert werden.


Wildcard's bzw. Platzhalter für Dateinamen sind * und ?

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen
Yves3 REPI „Microsoft Windows XP Version 5.1.2600 C Copyright 1985-2001 Microsoft Corp. Y:...“
Optionen

Habs probiert, es heiss aber immer, dass 0 Dateien kopiert wurden.
Ich vermute, dass es nicht in den Unterverzeichnissen nach *.txt Dateien gesucht hat.
Wenn ich aber /s oder /e angebe erhalte ich folgende Meldung:

Cannot perform a cyclic copy

Heir mein akuteller Befehl xcopy *.txt W:\IrgendeinOrdner\Nochwasmehr /w

Irgend eine Idee?

bei Antwort benachrichtigen
Yves3 Nachtrag zu: „Habs probiert, es heiss aber immer, dass 0 Dateien kopiert wurden. Ich vermute,...“
Optionen

Sorry, hab die Lösung gefunden.
Ich darf nicht in ein Unterverzeichnis des Quellverzeichnisses kopieren.

bei Antwort benachrichtigen
Yves3 Nachtrag zu: „Sorry, hab die Lösung gefunden. Ich darf nicht in ein Unterverzeichnis des...“
Optionen

Noch was:
Kann ich auch machen, dass alle Datein in ein Verzeichnis gekippt werden und nicht in den jeweiligen Ordnern an das Ziel kopiert werden?

bei Antwort benachrichtigen
Yves3 Nachtrag zu: „Noch was: Kann ich auch machen, dass alle Datein in ein Verzeichnis gekippt...“
Optionen

Das geht wohl so nicht :-(
Habs jetzt mit der Windows Suche gemacht.

bei Antwort benachrichtigen
Borlander Yves3 „Noch was: Kann ich auch machen, dass alle Datein in ein Verzeichnis gekippt...“
Optionen

Wäre zusammem mit dem FOR-Befehl möglich (dann würde man mittels FOR alle Unterverzeichnisse der Quelle in das eine Zielverzeichnis kopieren).

Mögliches Problem: In zwei QuellOrdnern sind identisch benannte Dateien zu finden...

bei Antwort benachrichtigen
Kelo REPI „Microsoft Windows XP Version 5.1.2600 C Copyright 1985-2001 Microsoft Corp. Y:...“
Optionen

Hallo Yves

natürlich geht das mit einem DOS-Befehl an der Konsole, so wie bereits beschrieben.
Auch ich habe dies früher noch oft so gemacht, da ich die Computerei mit DOS begonnen habe.

Weitere Möglichkeiten in der Konsole:
- Kopieren mit COPY, dann Löschen mit DEL
- Verschieben ist mit dem Befehl MOVE möglich
Für die Parameter einfach BEFEHL /? an der Konsole eingeben (BEFEHL durch den gewünschten Befehl z.B. MOVE, COPY usw. ersetzen).

Es gibt aber auch noch eine einfachere Lösung für Mausschubser ( - Windows Explorer starten.
- Auf den entsprechenden Ordner, Unterordner oder auch auf ein Laufwerk, in welchem gesucht werden soll, mit der rechten Maustaste klicken.
- Auf Suchen klicken.
- Die entsprechenden Parameter einstellen (mit/ohne Unterordner, mit/ohne Systemdateien usw.)
- Als Suchbegriff z.B. *.txt, *.xls usw. angeben.
- Auf Suchen klicken.
- Nun listet der Suchagent alle entsprechenden Dokumente auf.
- Die Dateien können nun markiert werden (Shift, Strg, Strg + a helfen enorm)
- Die Dateien können nun kopiert/ausgeschnitten und an beliebeiger Stelle wieder eingesetzt werden.

Etwas viel Text, aber in der Praxis im Handumdrehen gemacht.
Damit ist - wie gewünscht - eben auch das Verschieben (Ausschneiden) möglich.

Hih

Grüsse Kelo

bei Antwort benachrichtigen
Yves3 Kelo „Hallo Yves natürlich geht das mit einem DOS-Befehl an der Konsole, so wie...“
Optionen

Wie soll denn das gehen ohne dafür eine relativ umfangreiche Batch Datei zu schreiben (mit schleifen und all dem)?

Mit /e oder /s wird die Verzeichnisstruktur mitkopiert.
Mit Copy wird nur im aktuellen Verzeichnis nach Dateien gesucht.

Zur Windowssuche:
Genau so wie du es beschrieben hast hab ich es ja gemacht. (Naja trotzdem Danke für den Tip, kann man ja mal übersehen)

Aus meinem Posting oben:
--> Habs jetzt mit der Windows Suche gemacht.

bei Antwort benachrichtigen
Borlander Yves3 „Wie soll denn das gehen ohne dafür eine relativ umfangreiche Batch Datei zu...“
Optionen
Wie soll denn das gehen ohne dafür eine relativ umfangreiche Batchbild Datei zu schreiben (mit schleifen und all dem)?
Mit FOR /R ist das ganze ein Einzeiler...
bei Antwort benachrichtigen