Per Script Dateien aus verschiedenen Verzeichnissen zusammensuchen

Mitglied: chb1982

chb1982 (Level 2) - Jetzt verbinden

04.02.2010 um 09:11 Uhr, 7795 Aufrufe, 7 Kommentare

Moin,

der Titel sagt schon einiges aus. Ich möchte aus allen Unterverzeichnissen unter z.B. d:\daten\ alle Dateien in ein Verzeichnis kopieren wo diese dann weiter verarbeitet werden.

Die Herausforderung bei der Sache ist, dass die Daten im Zielverzeichnis nach der eigentlichen Verarbeitung gelöscht werden, aber trotzdem nicht wieder neu aus dem Quellverzeichnis geholt werden dürfen.

Hat jemand eine Idee, wie man das realisieren kann?


Das einzige, was mir einfällt wäre ein kleiens Tool, z.B. in VB, das die schon einmal kopierten Daten in einer Textdatei dokumentiert und beim nächsten Durchlauf damit abgleicht.
Ich würde es aber lieber mit einer Batch lösen zumal der Abgleich mit einer Textdatei mit der Zeit extrem langsam werden könnte.
Mitglied: H41mSh1C0R
04.02.2010 um 09:25 Uhr
Um wieviele Dateien geht es denn?

Les doch die vom Zielordner Verzeichnisstruktur ein und leg dir die Struktur in einer Textdatei ab.
Danach liest du die Struktur vom Quellordner und kopierst nur die die beim Diff übrigbleiben.
Nach dem Kopieren aktualisierst du die Strukturdatei des Zielordners wieder und fährst analog mit dem nächsten Quellordner fort.
Bitte warten ..
Mitglied: chb1982
04.02.2010 um 09:32 Uhr
Hi,

das sind nicht viele Daten.Im Moment etwa 50 Verzeichnisse mit jeweils max. 20 Dateien.

Im Zielordner sollen die Dateien aus den Unterordnern aber ohne Unterordner abgelegt werden. Also alle in ein Verzeichnis. Die Dateinamen sind eindeutig, das sollte keine Probleme geben.
Bitte warten ..
Mitglied: 76109
76109 (Level 3)
04.02.2010 um 11:56 Uhr
Hallo morpheus31337!

Eventuell, könnte man bei den bereits kopierten Dateien einfach nur das Archiv-Attribut löschen?

Gruß Dieter
Bitte warten ..
Mitglied: chb1982
04.02.2010 um 12:53 Uhr
Hi,

das bringt dann aber leider die Datensicherung durcheinander. Ausserdem ist mir das zu unischer wenn aus irgendwelchen Gründen das Bit wieder gesetzt wird und er nochmal über alle Dateien fegt...
Bitte warten ..
Mitglied: 76109
76109 (Level 3)
04.02.2010 um 20:26 Uhr
Hallo morpheus31337!

Zitat von @chb1982:
das bringt dann aber leider die Datensicherung durcheinander. Ausserdem ist mir das zu unischer wenn aus irgendwelchen
Gründen das Bit wieder gesetzt wird und er nochmal über alle Dateien fegt...
War nur eine Möglichkeit mit Fragezeichen;-) face-wink
Ich würde es aber lieber mit einer Batch lösen zumal der Abgleich mit einer Textdatei mit der Zeit extrem langsam werden könnte.
Gerade dann sollte es mit VBS wesentlich schneller gehen;-) face-wink

Also, ich habe mal ein kleines VB-SKript (*.vbs) zum testen gebastelt.

Das Skript erstellt/ersetzt in jedem Unterordner, in denen die zu kopierende Dateien stehen, eine Log-Datei mit der Erstellungszeit (Speicherzeit auf Datenträger) der zuletzt erstellten kopierten Datei im DateTime-Format "04.02.2010 19:14:23". D.h. beim starten des Skripts werden alle Dateien, die sich aktuell im Ordner befinden, mit der zuletzt gespeicherten Erstellungszeit in der Logfile verglichen und die Dateien, die nach dieser Zeit gespeichert wurden, in den Kopie-Ordner kopiert und die Erstellungszeit der zuletzt gespeicherten Datei wieder in die Log-Datei geschrieben. Sofern die Neu dazukommende Dateien nicht im Sekundentakt gespeichert werden, sollte das eigentlich funktionieren.

Das Skript muss sich im Haupt-Ordner "..\Test\Daten" befinden, wobei das Skript den Speicherort automatisch ermittelt und alle Unter-Ordner (1. Ebene) in diesem Ordner ausliest und die darin befindlichen Datei entsprechend kopiert. Der Kopie-Ordner darf sich logischerweise nicht in der Ordnerstruktur von "..\Test\Daten" befinden. Beispiel wäre hier "..\Test\Kopien\".

Die Konstanten entsprechend anpassen (Backslash LogFile am Anfang und CopyFolder am Ende beachten):
Gruß Dieter
Bitte warten ..
Mitglied: chb1982
05.02.2010 um 10:15 Uhr
Also ich habe das jetzt so gelöst.
Es gibt ein Textfile, das alle Dateinamen enthält, die bereits kopiert wurden. In meinem Fall sind die Dateinamen eindeutig daher ist das kein Problem.
Ansonsten müsste man den kompletten Pfad nehmen.

Nun gehe ich alle Unterzeichnisse durch und suche für jede gefundene Datei einmal die Textdatei durch ob diese schon einmal kopiert wurde.
Wider erwarten läuft das doch recht zügig.

Die fest codierten Pfade etc. entferne ich natürlich noch

Bitte warten ..
Mitglied: Sirius2002
16.05.2012 um 12:44 Uhr
Hallo,

der Beitrag ist zwar schon ziemlich alt jedoch hat er mir damals weitergeholfen.
Kann man das erste Skript auch so umbauen, dass es noch auf eine weitere Ebene an Unterodnern zugreift.

Sprich:
Hauptverzeichnis mit Skript
- Unterordner 1
-- mehrere Unterordner mit den *.txt Dateien
- Unterordner 2
-- mehrere Unterordner mit den *.txt Dateien

Vorher war es ja so:
Hauptverzeichnis mit Skript
- mehrere Unterordner mit den *.txt Dateien

Danke für die Hilfe,
Sirius2002
Bitte warten ..
Heiß diskutierte Inhalte
Microsoft
Erwerb von M365 Lizenzen, Partner Autorisierung für Azure AD - Globaler Administrator wirklich nötig?
NidavellirVor 1 TagFrageMicrosoft6 Kommentare

Hi zusammen, bitte entschuldigt den etwas sperrigen Titel, aber ein knapperer wollte mir nicht einfallen. :D Wir wollen bei einem Systemhaus M365 Lizenzen (Business ...

LAN, WAN, Wireless
Switch läuft, ist aber nicht erreichbar
gelöst AndiPeeVor 17 StundenFrageLAN, WAN, Wireless19 Kommentare

Hallo zusammen, mein Problemfall einleitend kurz umrissen: Privates Netzwerk Es funktioniert grundsätzlich, allerdings habe ich immer mal ein paar Ausfälle im WLAN-Netzwerk und bin ...

Off Topic
BKA und der Bundestrojaner
brammerVor 1 TagInformationOff Topic4 Kommentare

Hallo, habe kurz überlegt ob das unter Off Topic allgemein oder Off Topic LOL gehört brammer

Speicherkarten
Welchen USB Stick für Bootstick?
gelöst dlnkrgVor 1 TagFrageSpeicherkarten6 Kommentare

Hallo, Ich bin auf der Suche nach USB - Sticks, auf denen ich Linux Ubuntu installieren kann und praktisch als Festplatte für das Betriebssystem ...

Windows Netzwerk
Sporadisch kein Netz auf mehreren Win10-Maschinen
SolarflareVor 1 TagFrageWindows Netzwerk6 Kommentare

Hallo, ich habe seit Monaten einen eigenartigen Effekt in unserem Windows-Netz. Windows-Domäne mit ca. 100 Maschinen, alle Clients aktuelles Windows 10. Die Maschinen hängen ...

MikroTik RouterOS
Simples VLAN bringt mich zur Verzweiflung
gelöst Daniel26Vor 5 StundenFrageMikroTik RouterOS25 Kommentare

Moin, ich bin sehr neu im Mikrotik-Bereich, aber schon dabei, aufzuegeben. Wir verbauen in unserer Hardware Switche von Mikrotik. Bisher waren da Netgear-Teile drin, ...

Windows 7
Userpfad Problem nach Aenderung des Computernamens
BernerVor 1 TagFrageWindows 712 Kommentare

In einem Netzwerk von 9 PCs sind 9 Ersatz-PCs eingebunden, bei denen im Bedarfsfall vor dem Einsatz nur der Computername und die IP-Adresse angepasst ...

VB for Applications
Auf SQL Datenbank schreiben welche Sich im Firmennetzwerk befindet
RSST-SORVor 1 TagFrageVB for Applications12 Kommentare

Hallo Ich habe ein funktionierendes VBA Makro im EXCEL welches mit: conn.Open "driver={SQL Server};" & _ "server=RSST-OFFICEIII\RSSTSQLSERVER;database=RSSTZeiterfassung;" Daten in die Tabelle schreibt Nun würde ...