Daten nach Datum suchen, Ordner mit dem Datum anlegen und Daten hineinkopieren.
Hallo Community,
ich bin seit 2 Monaten Azubi zum IT-Kaufmann und soll nun ein kleines Batch-Programm schreiben. Leider habe ich davon fast überhaupt keine Ahnung.
Zu meinem Problem:
Es werden täglich zig automatische Druckaufträge als *.txt generiert in einem Ordner abgelegt, gedruckt und in eine *.dat-Datei umgewandelt (Zwecks Archivierung). Das ist alles schon in einem Batch-Programm so hinterlegt.
Nun sollen die *.dat-Dateien täglich in einen entsprechenden Monatsordner kopiert werden.
Das ist jetzt meine Aufgabe dieses zu programmieren.
Beispiel:
im Ordner X:\Etiketten\Drucker_01\ liegen
Eingang01.dat
Eingang02.dat
Eingang03.dat
Ausgang01.dat (usw)
im Ordner X:\Etiketten\Drucker_02\ liegen
Ausgang01.dat
Ausgang02.dat
Eingang01.dat
Eingang02.dat (usw)
es gibt dann noch viele andere Ordner!
alle sind unterschiedlich und haben ein unterschiedliches Datum.
nun sollen die *.dat-Dateien in ein extra Laufwerk\Ordner (Bsp.: Z:\Etiketten\Archiv\Drucker_01\Monat\) archiviert werden.
ich hoffe, ich konnte mein Problem gut erläutern und hoffe auf Denk- und/oder Lösungsansätze.
Vielen Dank im Vorraus!
Gruß Felix
ich bin seit 2 Monaten Azubi zum IT-Kaufmann und soll nun ein kleines Batch-Programm schreiben. Leider habe ich davon fast überhaupt keine Ahnung.
Zu meinem Problem:
Es werden täglich zig automatische Druckaufträge als *.txt generiert in einem Ordner abgelegt, gedruckt und in eine *.dat-Datei umgewandelt (Zwecks Archivierung). Das ist alles schon in einem Batch-Programm so hinterlegt.
Nun sollen die *.dat-Dateien täglich in einen entsprechenden Monatsordner kopiert werden.
Das ist jetzt meine Aufgabe dieses zu programmieren.
Beispiel:
im Ordner X:\Etiketten\Drucker_01\ liegen
Eingang01.dat
Eingang02.dat
Eingang03.dat
Ausgang01.dat (usw)
im Ordner X:\Etiketten\Drucker_02\ liegen
Ausgang01.dat
Ausgang02.dat
Eingang01.dat
Eingang02.dat (usw)
es gibt dann noch viele andere Ordner!
alle sind unterschiedlich und haben ein unterschiedliches Datum.
nun sollen die *.dat-Dateien in ein extra Laufwerk\Ordner (Bsp.: Z:\Etiketten\Archiv\Drucker_01\Monat\) archiviert werden.
ich hoffe, ich konnte mein Problem gut erläutern und hoffe auf Denk- und/oder Lösungsansätze.
Vielen Dank im Vorraus!
Gruß Felix
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 126217
Url: https://administrator.de/contentid/126217
Ausgedruckt am: 25.11.2024 um 21:11 Uhr
8 Kommentare
Neuester Kommentar
Das verstehe ich jetzt nicht ganz.
Die Ausgangslage war doch, das über den ganzen Tag im Quellverzeichnis diverse Dateien erstellt werden. Am Ende des Tages sollen die dann zusätzlich in einen Archivordner kopiert werden. Jedoch nur die von heute.
Nehmen wir also an heute werden 20 Dateien im Quellverzeichnis erstellt oder geändert. Jetzt kommt heute Nacht um 23:50 der geplante Task und startet die Batch. Dann wird alles mit Datum von heute in einen Ordner mit Datum von heute kopiert.
Morgen Abend kommt der geplante Task nochmal und kopiert die Dateien von morgen, weil morgen heute ja gestern ist
Und so läuft das dann Tag für Tag.
Die Ausgangslage war doch, das über den ganzen Tag im Quellverzeichnis diverse Dateien erstellt werden. Am Ende des Tages sollen die dann zusätzlich in einen Archivordner kopiert werden. Jedoch nur die von heute.
Nehmen wir also an heute werden 20 Dateien im Quellverzeichnis erstellt oder geändert. Jetzt kommt heute Nacht um 23:50 der geplante Task und startet die Batch. Dann wird alles mit Datum von heute in einen Ordner mit Datum von heute kopiert.
Morgen Abend kommt der geplante Task nochmal und kopiert die Dateien von morgen, weil morgen heute ja gestern ist
Und so läuft das dann Tag für Tag.
Ok, dann mach's halt so:Mit dem ersten set wird in die Variable erstelldat das aktuelle Datum geschrieben und gleichzeitig Punkte durch Striche erstezt, weil xcopy das so erwartet. Mit dem zweiten set werden dann die ersten drei Zeichen (also Tag und Trennzeichen) entfernt und der Variable targetdat zugewiesen.
Um die schon älteren Datein zu behandeln schaust du dir einfach mal die Hilfe zu xcopy an und wozu der schalter /d dient.
setlocal
set erstelldat=%date:.=-%
set targetdat=%erstelldat:~3%
xcopy <quelle> <ziel>\%targetdat%\ /d:%erstelldat% /e /v /c /i /y
Um die schon älteren Datein zu behandeln schaust du dir einfach mal die Hilfe zu xcopy an und wozu der schalter /d dient.
Moin SWuser,
ich weiss es nicht, ob du den letzten Tipp von manuel-r als solchen wahrgenommen hast...
Wenn du nun aber eventuell so fixiert auf die Erläuterung des Schalters /D wie /DeristBestimmtWichtig warst, dass du den Rest überlesen haben solltest:
Es gibt auch noch den nützlichen Schalter /L wie /LassMichErstmaGucken.
Damit kannst du dir für jede noch so abdrehte Xcopy-Parameter-Kombination erstmal am CMD-Prompt angucken, was denn OHNE diesen Schalter /L passieren würde.
Bitte schau in die XCopy-Hilfe, dann noch mal in meinen Kommentar, dann nochmal in die Hilfe und dann teste den Krams und poste danach die Fehlerursache.
Danke
Biber
ich weiss es nicht, ob du den letzten Tipp von manuel-r als solchen wahrgenommen hast...
Um die schon älteren Datein zu behandeln schaust du dir einfach mal die Hilfe zu xcopy an und wozu der schalter /d dient.
Wenn du nun aber eventuell so fixiert auf die Erläuterung des Schalters /D wie /DeristBestimmtWichtig warst, dass du den Rest überlesen haben solltest:
Es gibt auch noch den nützlichen Schalter /L wie /LassMichErstmaGucken.
Damit kannst du dir für jede noch so abdrehte Xcopy-Parameter-Kombination erstmal am CMD-Prompt angucken, was denn OHNE diesen Schalter /L passieren würde.
Bitte schau in die XCopy-Hilfe, dann noch mal in meinen Kommentar, dann nochmal in die Hilfe und dann teste den Krams und poste danach die Fehlerursache.
Danke
Biber