Batch Datei zum kopieren von Dateien
Ich komme bei diesem Prog. nicht weiter
Hallo liebe Profis =) ich bemüh mich eine Batch datei zu erstellen, welche Dateien in ein Archiv Verz. packt, das Erstellungsdatum an den Dateinamen anknüpft und sie anschließend in den richtigen "Monats" Ordner verschiebt.
Bsp.
in der Daten Quelle liegt folgende Datei: IAGEIS.123 diese kopiere ich in einen Archiv Ordner, daraus wird dann IAGEIS_2009.03.11.123
es wird also das Erstellungsdatum der Datei angehängt.
Ist dies getan, dann sollte die IAGEIS_2009.03.11.123 Datei noch in den richtigen Ordner verschoben werden.
Es sollten Ordner angelegt werden, für jeden Monat im Jahr, dabei sollte das Prog. auf das Erstelldatum der Datei achten und zB einen Ordner 200911 erstellen (jjjjmm) und alle Daten mit dem selben Monat dort hinein verschieben.
Ich bin bereits soweit, dass es das Erstelldatum an die Datei anhängt wird, jedoch nicht wie gewünscht, sondern im format : tt.mm.jjjj könnte mir viell. jmd. weiterhelfen wie ich dies in jjjj.mm.tt umschreibe? Und wie man die zugehörigen Ordner erstellt und die Dateien reinkopiert. Wär echt sehr nett.
Das ganze dient einer Archivierung, falls diese Angabe notwendig ist.
Hier mein Bisheriger Quellcode:
Es gibt um genauer zu sein 2 Quellordner
Komm echt nicht weiter und bin für jede Hilfe dankbar!
Vielen dank im Vorraus
MfG Stebbo
[Edit Biber] Code in Code-Tags gesetzt. [/Edit]
Hallo liebe Profis =) ich bemüh mich eine Batch datei zu erstellen, welche Dateien in ein Archiv Verz. packt, das Erstellungsdatum an den Dateinamen anknüpft und sie anschließend in den richtigen "Monats" Ordner verschiebt.
Bsp.
in der Daten Quelle liegt folgende Datei: IAGEIS.123 diese kopiere ich in einen Archiv Ordner, daraus wird dann IAGEIS_2009.03.11.123
es wird also das Erstellungsdatum der Datei angehängt.
Ist dies getan, dann sollte die IAGEIS_2009.03.11.123 Datei noch in den richtigen Ordner verschoben werden.
Es sollten Ordner angelegt werden, für jeden Monat im Jahr, dabei sollte das Prog. auf das Erstelldatum der Datei achten und zB einen Ordner 200911 erstellen (jjjjmm) und alle Daten mit dem selben Monat dort hinein verschieben.
Ich bin bereits soweit, dass es das Erstelldatum an die Datei anhängt wird, jedoch nicht wie gewünscht, sondern im format : tt.mm.jjjj könnte mir viell. jmd. weiterhelfen wie ich dies in jjjj.mm.tt umschreibe? Und wie man die zugehörigen Ordner erstellt und die Dateien reinkopiert. Wär echt sehr nett.
Das ganze dient einer Archivierung, falls diese Angabe notwendig ist.
Hier mein Bisheriger Quellcode:
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
@echo off & setlocal
set "Quelle=C:\SUBELKE\WIN-DFUE\EMPFANG.ARC"
set "Archiv=C:\SUBELKE\WIN-DFUE\ARCHIV\EMPFANG.ARC"
if not exist "%Archiv%" md "%Archiv%"
for /f "skip=5 tokens=1,3*" %%i in ('dir /a-d /tw "%Quelle%\*.*"^|findstr /v "Datei(en) Verzeichnis(se),"') do copy "%Quelle%\%%k" "%Archiv%\%%~nk_%%i%%~xk">nul
set "Quelle2=C:\SUBELKE\WIN-DFUE\EMPFANG.HDR"
set "Archiv2=C:\SUBELKE\WIN-DFUE\ARCHIV\EMPFANG.HDR"
if not exist "%Archiv2%" md "%Archiv2%"
for /f "skip=5 tokens=1,3*" %%i in ('dir /a-d /tw "%Quelle2%\*.*"^|findstr /v "Datei(en) Verzeichnis(se),"') do copy "%Quelle2%\%%k" "%Archiv2%\%%~nk_%%i%%~xk">nul
Es gibt um genauer zu sein 2 Quellordner
Komm echt nicht weiter und bin für jede Hilfe dankbar!
Vielen dank im Vorraus
MfG Stebbo
[Edit Biber] Code in Code-Tags gesetzt. [/Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 121234
Url: https://administrator.de/forum/batch-datei-zum-kopieren-von-dateien-121234.html
Ausgedruckt am: 13.04.2025 um 14:04 Uhr
12 Kommentare
Neuester Kommentar

Servus,
schau dir dazu mal Bibers Anleitung Datum in Batch an.
Wobei ich dir zusätzlich empfehlen würde mit 7zip zu arbeiten, damit kriegst du fast jedes Archiv schön klein. (jpg/mp3 mal ausgeschlossen)
Gruß
edit:
jau nun hab ichs ganz gelesen und auch verstanden...
Bibers Anleitung ist das, was du suchst
schau dir dazu mal Bibers Anleitung Datum in Batch an.
Wobei ich dir zusätzlich empfehlen würde mit 7zip zu arbeiten, damit kriegst du fast jedes Archiv schön klein. (jpg/mp3 mal ausgeschlossen)
Gruß
edit:
jau nun hab ichs ganz gelesen und auch verstanden...
Bibers Anleitung ist das, was du suchst
hallo,
für das Umstellen des Datums hab ich hier im Forum eine Lösung gefunden und etwas verändert:
Ergebnis für 24.07.2009 = "D=24" & "M=07" &"Y=2009"
diese Variablen kannst du ja dann auch dafür nutzen, die Datei in den richtigen Ordner zu verschieben:
Ergebnis wäre:
Datei "IAGEIS.123" wurde umbenannt in "IAGEIS_2009.07.24.123"
Datei wurde kopiert nach: D:\2009\07\24
hoffe das hilft
für das Umstellen des Datums hab ich hier im Forum eine Lösung gefunden und etwas verändert:
1
for /f "tokens=1-4 delims=." %%i in ("%date%") do set "D=%%i" & set "M=%%j" & set "Y=%%k"
diese Variablen kannst du ja dann auch dafür nutzen, die Datei in den richtigen Ordner zu verschieben:
1
2
2
REN IAGEIS.123 IAGEIS_%Y%.%M%.%D%.123
xcopy /v IAGEIS_%Y%.%M%.%D%.123 D:\%Y%\%M%\%D%\
Datei "IAGEIS.123" wurde umbenannt in "IAGEIS_2009.07.24.123"
Datei wurde kopiert nach: D:\2009\07\24
hoffe das hilft

Servus,
um dein Problem 1zu1 umzusetzen und das auch noch schön - brauchst einen der beiden Bs aus diesem Bereich.
Wobei es natürlich auch gefrickelt geht. - Aber im "B" Bereich frickelt es sich so schwer
wobei frickeln in meinen Augen bedeuten würde - erzeuge eine 2. Liste und anhand derer dann die "Zahlen" umdrehen und erst dann kopieren
Mit der obigen Abfrage hast du doch Dateiname und Erstellungsdatum.
Von daher wäre ein Lauf immer und immer wieder nicht notwendig - bzw sinnbefreit, wenn er öfters läuft und jemand zwischenzeitlich die datei geändert hätte - denn du fragst ja erstell nicht Änderungsdatum ab.
Von daher - denk bitte nochmal nach, ob dein Ziel wirklich den gewünschten Erfolg bietet.
Gruß
um dein Problem 1zu1 umzusetzen und das auch noch schön - brauchst einen der beiden Bs aus diesem Bereich.
Wobei es natürlich auch gefrickelt geht. - Aber im "B" Bereich frickelt es sich so schwer
wobei frickeln in meinen Augen bedeuten würde - erzeuge eine 2. Liste und anhand derer dann die "Zahlen" umdrehen und erst dann kopieren
Mit der obigen Abfrage hast du doch Dateiname und Erstellungsdatum.
Von daher wäre ein Lauf immer und immer wieder nicht notwendig - bzw sinnbefreit, wenn er öfters läuft und jemand zwischenzeitlich die datei geändert hätte - denn du fragst ja erstell nicht Änderungsdatum ab.
Von daher - denk bitte nochmal nach, ob dein Ziel wirklich den gewünschten Erfolg bietet.
Gruß
Würde etwa so an die Sache ran gehen: (Ungetestet!)
Behalte die Variablennamen Quelle und Archiv bei, um die Subroutine für beide Verzeichnisse zu nutzen. Übrigens: Erstellungsdatum mit Parameter /tc !
<edit> überflüssige "do"s und Apostrophe entfernt </edit>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
@echo off & setlocal
set "Quelle=C:\SUBELKE\WIN-DFUE\EMPFANG.ARC"
set "Archiv=C:\SUBELKE\WIN-DFUE\ARCHIV\EMPFANG.ARC"
if not exist "%Archiv%" md "%Archiv%"
pushd "%Quelle%"
for /f "skip=5 tokens=1,3*" %%i in ('dir /a-d /tc *.*^|findstr /b /c:" " /v') do set "Xdate=%%i" &set "Xnameext=%%k" &set "Xname=%%~nk" &set "Xext=%%~xk" &call :sub
popd
set "Quelle=C:\SUBELKE\WIN-DFUE\EMPFANG.HDR"
set "Archiv=C:\SUBELKE\WIN-DFUE\ARCHIV\EMPFANG.HDR"
if not exist "%Archiv%" md "%Archiv%"
pushd "%Quelle%"
for /f "skip=5 tokens=1,3*" %%i in ('dir /a-d /tc *.*^|findstr /b /c:" " /v') do set "Xdate=%%i" &set "Xnameext=%%k" &set "Xname=%%~nk" &set "Xext=%%~xk" &call :sub
popd
pause
goto :eof
:sub
set "tt=%Xdate:~0,2%"
set "mm=%Xdate:~3,2%"
set "jjjj=%Xdate:~-4%"
if not exist "%Archiv%\%jjjj%%mm%" md "%Archiv%\%jjjj%%mm%"
copy "%Quelle%\%Xnameext%" "%Archiv%\%jjjj%%mm%\%Xname%_%jjjj%.%mm%.%tt%%Xext%">nul
goto :eof
Behalte die Variablennamen Quelle und Archiv bei, um die Subroutine für beide Verzeichnisse zu nutzen. Übrigens: Erstellungsdatum mit Parameter /tc !
<edit> überflüssige "do"s und Apostrophe entfernt </edit>