marcys
Goto Top

Datei per Batch kopieren und Datum am Dateinamen anhängen

Hallo,

ich möchte eine Datei Namens DB_2009.mde per Batch aus den Verzeichnis:

E:\Daten\Access in das Verzeichnis F:\Datenbackup\Access\

kopieren. Dabei soll der kopierte Datei "DB_2009.mde" im Dateinamen noch das aktuelle Datum hinzugefügt. werden. DB_2009_25.11.09.mde

Könnte mir jemand posten wie man sowas macht? Habe von Batch nicht so viel Ahnung. Und das wäre die schnellste Variante die Datei zu sichern in dem ich diese per Mausklick auf die Batchdatei in das entsprechende Backupverzeichnis kopiere.

Gruß
Martin

Content-Key: 130238

Url: https://administrator.de/contentid/130238

Printed on: April 16, 2024 at 16:04 o'clock

Member: mag-lion
mag-lion Nov 25, 2009 at 14:42:43 (UTC)
Goto Top
Hi Martin,

Definiere zu Beginn das Datum in eine Variable:

for /f %%a in ('date /t') do set dat=%%a

dann hänge an das Ziel beim Kopier-Befehl an den Dateinamen "_%dat%" an.
Das sollte reichen.

Gruß
mag
Member: miniversum
miniversum Nov 25, 2009 at 17:19:11 (UTC)
Goto Top
Die Batch wäre dann so:
@copy "E:\Daten\Access\DB_2009.mde" "F:\Datenbackup\Access\DB_2009_%date%.mde"
Funktioniert dann aber nur wen du das Systemdatum auch als TT.MM.YYYY eingestellt hast.
Member: mag-lion
mag-lion Nov 26, 2009 at 07:31:46 (UTC)
Goto Top
Moin Moin,

oder man benutzt aus den UnixUtils das "date"-Kommando.
Dann ist man auch unabhängig, ob nun W2K oder WXP oder...


Gruß
mag
Member: Marcys
Marcys Nov 27, 2009 at 08:00:43 (UTC)
Goto Top
Zitat von @miniversum:
Die Batch wäre dann so:
> @copy "E:\Daten\Access\DB_2009.mde"
"F:\Datenbackup\Access\DB_2009_%date%.mde"
Funktioniert dann aber nur wen du das Systemdatum auch als TT.MM.YYYY
eingestellt hast.

Das klapp gut.
Jedoch kann ich das Systemdatum nicht auf TT.MM.YYYY stehen lassen, sondern muss es bei TT.MM.YYYY belassen.

Wie müsste man den Befehl umstellen?
Gruß
Martin
Member: mag-lion
mag-lion Nov 27, 2009 at 08:21:34 (UTC)
Goto Top
Das klapp gut.
Jedoch kann ich das Systemdatum nicht auf TT.MM.YYYY stehen lassen,
sondern muss es bei TT.MM.YYYY belassen.

"nicht auf TT.MM.YYYY ... sondern bei TT.MM.YYYY belassen" ???
versteh ich nicht


Wie müsste man den Befehl umstellen?
Gruß
Martin

Noch mal zu den UnixUtils. "date.exe" ist hier sehr nützlich:

 
@echo off
for /f %%a in ('date.exe +%%d.%%m.%%Y') do set dat=%%a  
copy "E:\Daten\Access\DB_2009.mde" "F:\Datenbackup\Access\DB_2009_%dat%.mde  

Wie oft verwendest du dieses Script? Täglich?

Gruß
mag
Member: Marcys
Marcys Nov 27, 2009 at 10:19:58 (UTC)
Goto Top
Hi,

sorry, ich meine natürlich, dass ich, dass ich das Datumsformat: TT.MM.YY bei belassen muss.

Mag, ich habe dein Befehl übernommen aber, wenn ich es ausführe, öffnet sich das leere CMD Fenster und es bleibt stehen. Kopiert wird auch nix. Erst wenn ich das CMD Fenster manuell schließe, wir die Datei kopiert.

Gruß
Martin
Member: mag-lion
mag-lion Nov 27, 2009 at 11:22:22 (UTC)
Goto Top
Hast du die Datei "date.exe" im aktuellen Verzeichnis?
Member: miniversum
miniversum Nov 27, 2009 at 11:42:07 (UTC)
Goto Top
Das es in TT.MM.YY ist macht ja nichts.
Die Bemerkung war nru deshalb weil ind er Variabeln %date% das datum so steht wie es im System angegeben ist, also ,TT.MM.YYYY, TT.MM.YY, MM-TT-YY, MM-TT-YYYY oder wie es auch immer eingestellt ist.
Wenn das aber ok für dich ist kannst du es so lassen.
Andernfalls müstest du mit einem For die %date% Variable zerlegen unn anders zusammensetzen (z.b. wen du die Reihenfolge YYYYMMTT willst.
Member: Marcys
Marcys Nov 27, 2009 at 12:56:31 (UTC)
Goto Top
hallo,

also das mit dem Datum anhängen klappt ja.
Mein Problem ist nur:

wenn ich es ausführe, öffnet sich das leere CMD Fenster und es bleibt stehen. Kopiert wird auch nix. Erst wenn ich das CMD Fenster manuell schließe, wir die Datei kopiert.
Member: mag-lion
mag-lion Nov 27, 2009 at 13:22:59 (UTC)
Goto Top
Zitat von @Marcys:
hallo,

also das mit dem Datum anhängen klappt ja.
Mein Problem ist nur:

wenn ich es ausführe, öffnet sich das leere CMD Fenster und
es bleibt stehen. Kopiert wird auch nix. Erst wenn ich das CMD Fenster
manuell schließe, wir die Datei kopiert.

Wo liegt denn diese Batch-Datei?

Entferne den Eintrag "@echo off" (Speichern nicht vergessen), öffne ein cmd,
wechsle in dieses Verzeichnis und starte den Batch von da aus.

Welche Meldungen erhältst du?
Member: Marcys
Marcys Nov 27, 2009 at 14:30:49 (UTC)
Goto Top
Hi,

Es geht mir darum, dass ich die Batchdatei öffne und automatisch die Datei kopiert wird.
Den Befehl möchte ich nicht jedes mal in die Kommandoziele eingeben.

meine Batch liegt auf dem Desktop und sieht so aus:

01.
02. @echo off
03. for /f %%a in ('date.exe +%%d.%%m.%%Y') do set dat=%%a
04. copy "E:\Daten\Access\DB_2009.mde" "F:\Datenbackup\Access\DB_2009_%dat%.mde
05.@echo off

Wenn ich diese Batchdatei mit Doppelklick ausführe, öffnet sich ein ganz leeres CMD Fenster und es passiert erstmal nix, solange bis ich das CMD Fenster manuell schließe. Tue ich das, wir die Datei richtigerweise in das richtige Verzeichnis mit dem richtigen Namen kopiert.

Lösche ich eins der @off's so öffnet sich das cmd Fenster mit dem Inhalt:

for /f %%a in ('date.exe +%%d.%%m.%%Y') do set dat=%%a

kopiert wird aber nix. Auch nicht, wenn ich das CMD fenster schließe


Im Grunde genommen geht es mir darum, dass das CMD Fenster geschlossen wird.

Gruß
Martin
Member: mag-lion
mag-lion Nov 30, 2009 at 05:52:44 (UTC)
Goto Top
Guten Morgen,


Zitat von @Marcys:
Hi,

Es geht mir darum, dass ich die Batchdatei öffne und automatisch
die Datei kopiert wird.
Den Befehl möchte ich nicht jedes mal in die Kommandoziele
eingeben.

Nein, sollst du auch nicht.


meine Batch liegt auf dem Desktop und sieht so aus:

01.
02. @echo off
03. for /f %%a in ('date.exe +%%d.%%m.%%Y') do set dat=%%a

04. copy "E:\Daten\Access\DB_2009.mde"
"F:\Datenbackup\Access\DB_2009_%dat%.mde
05.@echo off


Prinzipielle Frage: Legst du immer (oder meistens) Dateien auf dem Desktop ab?

Wenn ich diese Batchdatei mit Doppelklick ausführe, öffnet
sich ein ganz leeres CMD Fenster und es passiert erstmal nix, solange
bis ich das CMD Fenster manuell schließe. Tue ich das, wir die
Datei richtigerweise in das richtige Verzeichnis mit dem richtigen
Namen kopiert.

Lösche ich eins der @off's so öffnet sich das cmd
Fenster mit dem Inhalt:

for /f %%a in ('date.exe +%%d.%%m.%%Y') do set dat=%%a

kopiert wird aber nix. Auch nicht, wenn ich das CMD fenster
schließe


Im Grunde genommen geht es mir darum, dass das CMD Fenster
geschlossen wird.

Gruß
Martin

Konnte dein Problem nachvollziehen. Hatte es nach deiner Vorgehensweise
so probiert.
Lösung: Wenn du diese Sicherung manuell starten möchtest, lege die Batch-Datei
in ein Verzeichnis (z.B. C:\BAT) und zieh einfach einen Link von ihr zum Desktop.
Bei den Eigenschaften stellst du "Ausführen = Minimiert" und dann siehst du fast
nix mehr von der ganzen Prozedur.

Gruß
mag
Member: Marcys
Marcys Nov 30, 2009 at 07:52:21 (UTC)
Goto Top
Zitat von @mag-lion:

Lösung: Wenn du diese Sicherung manuell starten möchtest,
lege die Batch-Datei
in ein Verzeichnis (z.B. C:\BAT) und zieh einfach einen Link von ihr
zum Desktop.
Bei den Eigenschaften stellst du "Ausführen =
Minimiert" und dann siehst du fast
nix mehr von der ganzen Prozedur.


Hallo,

habe es genau so gemacht wie im Zitat beschrieben. Es passiert folgendes Bei Ausfürhung des Links:

leeres CMD Fenster öffnet sich und es passiert nix. Wenn ich das Fenster schließe wird auch keine Datei kopiert.
Führe ich die Datei aus c:\bat aus, so passiert das was ich schon beschrieben habe:

""" Wenn ich diese Batchdatei mit Doppelklick ausführe, öffnet
sich ein ganz leeres CMD Fenster und es passiert erstmal nix, solange
bis ich das CMD Fenster manuell schließe. Tue ich das, wir die
Datei richtigerweise in das richtige Verzeichnis mit dem richtigen
Namen kopiert. """

Gruß
Martin
P.S
so schlimm ist es nicht, dass ich das Fenster zu machen muss aber würde schon gerne wissen wie es richtig geht.
Member: mag-lion
mag-lion Nov 30, 2009 at 09:52:00 (UTC)
Goto Top
Also so ganz komme ich jetzt nicht mehr mit.
Mach bitte folgendes, um Fehler zu minimieren:
- erstelle neues Verzeichnis auf c:
z.B. c:\batch
- kopiere die Datei "date.exe" und deine bat-Datei (welchen Namen hat die?)
in das Verzeichnis c.\batch
- editiere dies bat-Datei, die dann so aussehen sollte

echo on
for /f %%a in ('date.exe +%%d.%%m.%%Y') do set dat=%%a  
copy "E:\Daten\Access\DB_2009.mde" "F:\Datenbackup\Access\DB_2009_%dat%.mde"  
pause

- speichern, schließen
- dann einen Link auf den Desktop legen und auf diesen einen Doppel-Klick
- nun siehst du, was das Programm anstellt
Member: Marcys
Marcys Dec 11, 2009 at 17:32:38 (UTC)
Goto Top
Hallo,

wollte noch mal kurz ein Feedback geben (danke Biber)

ich habe es dabei belassen, dass ich das die .bat Datei in dem Ordner C:\bat habe und diese von dort ausführe. Dann schließe ich das Fenster und die gewünschte Datei wird mit Datum in das gewünschte Verzeichnis kopiert.