Dateien per Batch, Script in passende Ordner verschieben
Guten Morgen,
ich würde gern die tägliche Arbeit bei uns etwas vereinfachen, da zur Zeit sehr viele Dateien per Hand verwoben werden müssen. Mit meinen Grundlagenwissen komme ich leider grade nicht wirklich weiter, aber vielleicht könnt ihr mir ja etwas helfen.
Ich habe folgendes Problem:
es werden bei uns Dateien in C:\Data\ erzeugt.
die Labelcodes der Dateien lauten: XX_100523_S_B_a_S01_D1.dat
kurze erläuterung des Codes:
XX = Tool
10 = Jahreszahl (hier 2010)
05 = Monat
der Rest ist für die Zuordnung egal.
diese sollen nun automatisiert in die richtigen Zielordner kopiert werden.
diese Liegen dann unter: X:\Data\Jahreszahl\Monat\Ordner mit entsprechenden Labelcode\
in diesem Beispiel: X:\Data\2010\05\XX_100523_S_B_a\
Nun sollte am besten in den jeweiligen Pfad ein zusätzlicher Ordner Namens lifetime angelegt werden, worein die Daten zu verschieben wären.
Jetzt meine Frage ist das zu bewerkstelligen? bzw. könntet ihr mir da vielleicht weiter helfen?
Vielen Dank im voraus schonmal.
Klatschbirne08
ich würde gern die tägliche Arbeit bei uns etwas vereinfachen, da zur Zeit sehr viele Dateien per Hand verwoben werden müssen. Mit meinen Grundlagenwissen komme ich leider grade nicht wirklich weiter, aber vielleicht könnt ihr mir ja etwas helfen.
Ich habe folgendes Problem:
es werden bei uns Dateien in C:\Data\ erzeugt.
die Labelcodes der Dateien lauten: XX_100523_S_B_a_S01_D1.dat
kurze erläuterung des Codes:
XX = Tool
10 = Jahreszahl (hier 2010)
05 = Monat
der Rest ist für die Zuordnung egal.
diese sollen nun automatisiert in die richtigen Zielordner kopiert werden.
diese Liegen dann unter: X:\Data\Jahreszahl\Monat\Ordner mit entsprechenden Labelcode\
in diesem Beispiel: X:\Data\2010\05\XX_100523_S_B_a\
Nun sollte am besten in den jeweiligen Pfad ein zusätzlicher Ordner Namens lifetime angelegt werden, worein die Daten zu verschieben wären.
Jetzt meine Frage ist das zu bewerkstelligen? bzw. könntet ihr mir da vielleicht weiter helfen?
Vielen Dank im voraus schonmal.
Klatschbirne08
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 25.02.2011 um 17:16:33 Uhr
Bereits gelösten Beitrag verschoben von "Entwicklung" nach "Batch & Shell'.
Content-ID: 161562
Url: https://administrator.de/forum/dateien-per-batch-script-in-passende-ordner-verschieben-161562.html
Ausgedruckt am: 21.05.2025 um 08:05 Uhr
5 Kommentare
Neuester Kommentar
Hallo Klatschbirne08 und willkommen im Forum!
Unter der Voraussetzung, dass die Struktur (Aufteilung anhand des Trennzeichens "_") immer gleich ist, könnte das (völlig ungetestet) etwa so zu lösen sein:
Solange "
Um Dein Grundlagenwissen etwas zu erweitern, könntest Du zB mit "
Grüße
bastla
Unter der Voraussetzung, dass die Struktur (Aufteilung anhand des Trennzeichens "_") immer gleich ist, könnte das (völlig ungetestet) etwa so zu lösen sein:
@echo off & setlocal
set "Quelle=C:\Data"
set "Typ=dat"
set "Ziel=X:\Data"
for %%i in ("%Quelle%\*.%Typ%") do (
for /f "tokens=1-5 delims=_" %%a in ("%%~ni") do (
set "Datum=%%b"
set "Ordner=%%a_%%b_%%c_%%d_%%e"
)
call :ProcessFile "%%i"
)
pause
goto :eof
:ProcessFile
set "ZielOrdner=%Ziel%\20%Datum:~0,2%\%Datum:~2,2%\%Ordner%"
echo xcopy %1 "%ZielOrdner%\lifetime\"
echo move %1 "%ZielOrdner%"
goto :eof
echo
" am Beginn der Zeilen 18 und 19 steht, werden der Kopier- bzw Verschiebebefehl zum Testen nur angezeigt - wenn Du diese "echo
" entfernst ("pause
" wirst Du dann auch nicht mehr benötigen), passiert's tatsächlich ... Um Dein Grundlagenwissen etwas zu erweitern, könntest Du zB mit "
set /?
" die Onlinehilfe aufrufen und anhand der ca 4. Bildschirmseite (hoffentlich) nachvollziehen, was zB "%Datum:~0,2%
" so macht ...Grüße
bastla
Hallo Klatschbirne08!
Ich hatte Deine Wünsche
Aber wenn's so für Dich passt, soll's mir auch recht sein ...
Grüße
bastla
Ich hatte Deine Wünsche
diese sollen nun automatisiert in die richtigen Zielordner kopiert werden.
undNun sollte am besten in den jeweiligen Pfad ein zusätzlicher Ordner Namens lifetime angelegt werden, worein die Daten zu verschieben wären.
so interpretiert, dass es die Datei dann zweimal geben sollte - dass in Zeile 18 zunächst in den Ordner "X:\Data\2010\05\XX_100523_S_B_a\lifetime" kopiert und dann in Zeile 19 erst in den Ordner "X:\Data\2010\05\XX_100523_S_B_a\" verschoben wird, hatte eigentlich nur den Grund, dass "xcopy
" bei Bedarf automatisch den vollständigen Zielpfad erstellen kann - das Endergebnis wäre aber gleich gewesen, während ein Hinzufügen von "\lifetime\" in Zeile 19 ja dazu führt, dass die Datei nur noch einmal existiert ...Aber wenn's so für Dich passt, soll's mir auch recht sein ...
Grüße
bastla