Batch Datei erstellen. Intelligentes und effektives kopieren von Verzeichnissen und Dateien mit Keywords Win7

Mitglied: preachers

preachers (Level 1) - Jetzt verbinden

11.06.2015, aktualisiert 21:45 Uhr, 1695 Aufrufe, 5 Kommentare, 1 Danke

Hallo Zusammen,

leider bin ich kein Batch Programmierer und habe daher nur Grundlagenwissen, deshalb bin ich um jede Hilfe sehr dankbar.

Aufgabe:
Ich habe einen externen Datenträger und möchte mit dessen Hilfe Verzeichnisse und Dateien kopieren.
Best Case wäre für mich, wenn ich in der Batchdatei nicht nur den Dateityp (*.doc, *.docx, *.pdf) sondern auch
ein Keywort festlegen könnte. Sprich es werden nur Dateien und Verzeichnisse kopiert die ein Keywort enthalten.

Nachdem ich das Problem mit der Laufwerkbuchstabenerkennung gelöst hatte, habe ich schon mal angefangen.

Beta Version 1

@echo off
set odrive=%odrive:~0,2%
set backupcmd=xcopy /s /c /d /e /h /i /r /y /f /w
pause
echo keywort1
%backupcmd% "%USERPROFILE%\*keywort1.doc" "%drive%\Word\*.doc"
%backupcmd% "%USERPROFILE%\*keywort1.docx" "%drive%\Word\*.docx"
%backupcmd% "%USERPROFILE%\*keywort1.pdf" "%drive%\Word\*.pdf"
pause
echo keywort2
%backupcmd% "%USERPROFILE%\*keywort2.doc" "%drive%\Word\*.doc"
%backupcmd% "%USERPROFILE%\*keywort2.docx" "%drive%\Word\*.docx"
%backupcmd% "%USERPROFILE%\*keywort2.pdf" "%drive%\Word\*.pdf"
pause
echo keywort3
%backupcmd% "%USERPROFILE%\*keywort3.doc" "%drive%\Word\*.doc"
%backupcmd% "%USERPROFILE%\*keywort3.docx" "%drive%\Word\*.docx"
%backupcmd% "%USERPROFILE%\*keywort3.pdf" "%drive%\Word\*.pdf"
pause
exit


Herausforderungen:
1. Ich habe hier schon mal mit den Dateitypen angefangen und festgestellt, dass ich pro Keywort 3 Befehle benötige,
die wiederum nacheinander abgearbeitet werden und das sehr viel Zeit in Anspruch nimmt. Können nicht gleich
alle Endungen gleichzeitig gesucht werden?

2. Ist das Keywort am Ende des Dateinamens oder ist das Keywort mit Leerzeichen getrennt, so werden die Dateien nicht mitkopiert.

3. Wie funktioniert das Kopieren in Kombination Keywort im Ordnernamen? Wird über "dir" eine Ordnerliste mit dem Keywort erstellt und dann kopiert?
Läuft es über Variablen Setzung set Key1=2015 im Dateinamen und dann über %Key1% ab oder wird mit dem Befehl For und den Zeichen %%1 gearbeitet?

Vielen Dank für eure Unterstützung.
Mitglied: rubberman
13.06.2015, aktualisiert um 13:05 Uhr
Hallo preachers, willkommen im Forum.

Deine Fragen laufen in der möglichen Umsetzung etwas konträr. Was soll das Endziel sein?

ROBOCOPY könnte durchaus bei der ersten Hälfte deiner Aufgabe hilfreich sein. Mehrere Filter für Dateinamen mit Wildcards (*) zu erstellen ist kein Problem. Die Frage ist, ob beim Kopieren die ursprüngliche Verzeichnisstruktur erhalten bleiben soll, oder du lediglich die gefundenen Dateien in immer das gleiche Verzeichnis kopieren willst.

Wenn du Filter für einen Teil des Pfades setzen willst, geht das nicht mehr so einfach (da du Wildcards nicht mitten in den Pfad setzen kannst). Dann bringe mal ein Beispiel, wie so etwas aussehen würde. Möglich wäre die Ausgabe des DIR Befehls per Pipe an FINDSTR zu übergeben und das Ergebnis in einer FOR /F Schleife zu verwursten. Effektiv ist das dann aber insofern nicht, da jedes Ergebnis einzeln behandelt/kopiert werden würde.

Grüße
rubberman
Bitte warten ..
Mitglied: preachers
16.06.2015, aktualisiert um 16:13 Uhr
Hallo rubberman,

vielen Dank für deine Antwort.

Also Endziel soll sein, eine Datensicherung zu erstellen aber nur für Word und PDF Dateien die eben die Keywords enthalten und das ganze möglichst zügig.
Bei der oberen Datei wird eben bei jedem Key- und Dateityp fast das ganze System durchsucht und das dauert schon ziemlich lange.
Die Dateien mit ursprüngliche Verzeichnisstruktur zu kopieren wäre natürlich nice to have aber kein muss.
Leere Verzeichnisse sollten aber immer ausgeschlossen sein und ebenso gefundene Dateien NICHT gelöscht werden.

Ich dachte auch an eine Schleife, aber wie du bereits selbst sagst - ineffizient weil jedes Ergebnis einzeln behandelt/kopiert werden würde.
Wie würde den ein Befehl mit robocopy und wildcard aussehen?
Habe nur einen älteren Artikel gefunden, bei dem es nicht geht: http://www.sevenforums.com/general-discussion/223482-how-robocopy-files ...
Erkennt robocopy überhaupt den Pfad %USERPROFILE%?

Vielen Dank im Vorraus

Gruß
preachers
Bitte warten ..
Mitglied: rubberman
16.06.2015 um 19:32 Uhr
Hallo preachers.

Im einfachsten Fall würde die Kommandozeile etwa so aussehen:
Wie gesagt, ist das für Schlüsselwort im Dateiname. Wenn du Pfade nach einem Schlüsselwort filtern willst, dann nur mit Schleife.

Erkennt robocopy überhaupt den Pfad %USERPROFILE%?
Hehe, das ist eine Environmentvariable, die für jeden Prozess existiert, der in der Benutzersitzung ausgeführt wird. Ich denke du meinst, ob robocopy die Schreibweise %USERPROFILE% zum Wert auflöst: Die Antwort ist nein. Aber das ist völlig irrelevant. Der cmd.exe Prozess, in dem deine Batchdatei ausgeführt wird, tut das bereits und übergibt den expandierten Pfad an robocopy ;-) face-wink

Grüße
rubberman
Bitte warten ..
Mitglied: preachers
22.06.2015 um 19:47 Uhr
Hallo rubberman,

vielen Dank für deine hilfreiche Kommandozeile die ich gleich übernommen habe.
Das durchsuchen scheint auf den ersten Blick sehr schnell zu gehen, aber das finden klappt leider nicht.
Ich habe dazu Testdateien also keyword1.doc keyword1.docx keyword1.pdf auf dem Desktop erstellt und diese wurden einfach nicht gefunden oder kopiert.

Daraufhin habe ich den Befehl mit /LOG:log.txt erweitert um der Sache auf die Schliche zu kommen.

1. Aus kurzen Pfaden z.B. C:\Users\Nutzername\Anwendungsdaten\Adobe\ wird weiter unten

C:\Users\Nutzername\AppData\Local\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Adobe\

2. Die Suche endet einfach nicht. Vermutlich auf Grund der Fehlermeldung s.u.

3. Fehlermeldung

2015/06/22 19:38:04 FEHLER 1921 (0x00000781) Quellverzeichnis wird berprft C:\Users\Nutzername\AppData\Local\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\
Der Dateiname konnte durch das System nicht zugeordnet werden.

30 Sekunden wird gewartet... Wiederholung...

und dann immer wieder die gleiche Fehlermeldung...

Tritt dies bei dir auch auf?
Vielen Dank schonmal im Vorraus.

Grüße
preachers
Bitte warten ..
Mitglied: rubberman
23.06.2015, aktualisiert um 22:52 Uhr
Hallo preachers.

Der Pfad sieht merkwürdig aus. Überprüfe noch mal ob alles korrekt ist (du also bspw. die Umgebungsvariale USERPROFILE nich zufällig neu definiert hast, die DRIVE Variable einen gültigen Wert hat und das Zielverzeichnis existiert). Unabhängig davon hängt Robocopy an dieser Stelle bis in alle Ewigkeit, da beim Auftreten eines Fehlers standardmäßig 1.000.000 Versuche gestartet werden, die Daten doch noch zu kopieren und das jeweils im Abstand von 30 s.
Natürlich gibt es auch dafür Optionen mit denen du beides bspw. auf 1 setzen kannst. Also hänge zusätzlich folgendes an:
/r:1 /w:1
Für mehr Informationen führe
ROBOCOPY /?
aus oder suche im Internet nach der "robocopy.doc".

Grüße
rubberman
Bitte warten ..
Heiß diskutierte Inhalte
Off Topic
Wohin mit alter (Server)Hardware?
insidERRVor 1 TagFrageOff Topic35 Kommentare

Hallo zusammen. Nachdem unser Leasing nach 5 Jahren ausgelaufen ist, haben wir auf der Arbeit neue Server bekommen. Wieder sind es zwei Hosts für ...

Windows Netzwerk
Wie VPN in Zeiten von HomeOffice einfach gestalten
VizKyneticVor 1 TagFrageWindows Netzwerk12 Kommentare

Moin! Vermehrt kommen die Anfragen zu HomeOffice Arbeitsplätzen und der Möglichkeit Remote zu arbeiten. Wir haben verschiedene Lösungen im Einsatz, da diese Struktur über ...

Datenschutz
DSGVO-konforme Löschsoftware für Festplatten
alwayshungryVor 1 TagFrageDatenschutz26 Kommentare

Hallo zusammen, welche Software gibt es, damit man DSGVO-konform Festplatten löschen kann? Ich kenne zwar Blancco, aber gibt es denn da keine gesetzeskonforme Alternativen? ...

Windows 10
Windows 10 Anmeldezeitenbeschränkung für Kinder
gelöst bastian23Vor 1 TagFrageWindows 1014 Kommentare

Hallo, kennt jemand von Euch eine Lösung, um meine Kinder daran zu hintern ihre Notebooks nach z.B. 21 Uhr zu nutzen? Ein einfacher shutdown ...

TK-Netze & Geräte
Panasonic NS700 an S0 von Fritzbox
jensgebkenVor 1 TagFrageTK-Netze & Geräte38 Kommentare

Hallo Gemeinschaft, gibt es eine Möglichkeit meine gebrauchte NS700 mit einer Fritzbox zu verbinden, so dass ich auch raustelefonieren kann - hinter der NS ...

Microsoft
Druckerwarteschlange druckt nur 9999 Seite
WBPowerVor 1 TagFrageMicrosoft8 Kommentare

Hallo zusammen, ich habe folgende Problemstellung. Wir betreiben einen Printserver auf Basis Windows Server 2016 (ca. 100 Drucker unterschiedlichster Hersteller und Modelle). Die Kollegen ...

Switche und Hubs
100Mbit per 4 Adern
geforce28Vor 1 TagFrageSwitche und Hubs5 Kommentare

Hallo zusammen, ich habe folgendes Szenario realisiert: Über 4 Adern (alte Telefonleitung, die in der Wand liegt mit, ca. 15m) ist eine 100Mbit Ethernet ...

Windows 10
Was sagt ihr zum Windows 10 auf den Raspberry Pi 4 ?
SpielfoxLPVor 1 TagFrageWindows 108 Kommentare

Moin , Ich habe gestern auf den Raspberry Pi 4 Windows 10 installiert und wollte Frage was ihr da von haltet ?