Batch - Datei Kopieren und neue Datei erzeugen
Hallo Gemeinde,
bitte entschuldigt, dass meine Batch-Kenntnisse begrenzt sind.
Ich möchte eine Datei zum Sichern auf ein Netzlaufwerk kopieren.
Die Datei soll mittels eines geplanten Task die Datei C:\Programme\meinProgramm\Daten.mdb nach S:\Sicherung\meinProgramm\ kopieren. Das geht wunderbar mit xcopy. jetzt aber meine Schwierigkeit: Ist es möglich, dass bei jedem Kopiervorgang eine neue Datei im Ordner erzeugt wird? Also...
S:\Sicherung\meinProgramm\
Daten_201502.mdb
Daten_201501.mdb
Daten_201431.mdb
usw.
Dazu kommt noch, dass ich davon möglichst wenig sehen will. Soweit ich weiß muss man dann @echo off davor schreiben und ich hätte es auch gern, dass keine Abfragen gestellt werden und dass sich das Fenster anschlißend selbstständig schließt.
Ist das möglich und wenn ja wie?
Zweite Frage (für mich zur Info). Wie heißt der xcopy Befehl um die Datei am Zielort zu überschreiben?
Vielen Dank für Eure Hilfe.
Ich wünsche allen ein schönes Wochenende
Grüße
Alex
bitte entschuldigt, dass meine Batch-Kenntnisse begrenzt sind.
Ich möchte eine Datei zum Sichern auf ein Netzlaufwerk kopieren.
Die Datei soll mittels eines geplanten Task die Datei C:\Programme\meinProgramm\Daten.mdb nach S:\Sicherung\meinProgramm\ kopieren. Das geht wunderbar mit xcopy. jetzt aber meine Schwierigkeit: Ist es möglich, dass bei jedem Kopiervorgang eine neue Datei im Ordner erzeugt wird? Also...
S:\Sicherung\meinProgramm\
Daten_201502.mdb
Daten_201501.mdb
Daten_201431.mdb
usw.
Dazu kommt noch, dass ich davon möglichst wenig sehen will. Soweit ich weiß muss man dann @echo off davor schreiben und ich hätte es auch gern, dass keine Abfragen gestellt werden und dass sich das Fenster anschlißend selbstständig schließt.
Ist das möglich und wenn ja wie?
Zweite Frage (für mich zur Info). Wie heißt der xcopy Befehl um die Datei am Zielort zu überschreiben?
Vielen Dank für Eure Hilfe.
Ich wünsche allen ein schönes Wochenende
Grüße
Alex
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 264751
Url: https://administrator.de/contentid/264751
Ausgedruckt am: 24.11.2024 um 06:11 Uhr
6 Kommentare
Neuester Kommentar
Hi Alex
Variablen setzen (set)
Quelle Ziel zuweisen
Tip --> xcopy /? zeigt dir alle möglichen Parameter mit Erklärung
Gruß
Hajowe
@Echo off
set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%
set Quelle="C:\Program FILES\Daten.mdb"
set Ziel="d:\Daten%jahr%%Monat%%Tag%.mdb"
xcopy /Y %Quelle% %Ziel%
Variablen setzen (set)
Quelle Ziel zuweisen
Tip --> xcopy /? zeigt dir alle möglichen Parameter mit Erklärung
Gruß
Hajowe
Hallo Alex
Du kannst mal die Zeile so setzen
set Ziel="d:\Daten%jahr%%Monat%%Tag%.mdb\"
Den Backslash dahinter, dann sollte Xcopy wissen das es eine Datei ist.
Alternativ:
Wenn ich recht verstehe willst du immer nur eine Datei kopieren. Hatte es vor überlesen.
Dann nimm den einfachen copy statt xcopy. Parameter identisch.
Xcopy bietet sich ehr an wenn du mehrer Dateien oder Ordner mit Unterordner kopieren willst.,
Ich persönlich bevorzuge robocopy . Das ist der neuere Befehl
Gruß
Du kannst mal die Zeile so setzen
set Ziel="d:\Daten%jahr%%Monat%%Tag%.mdb\"
Den Backslash dahinter, dann sollte Xcopy wissen das es eine Datei ist.
Alternativ:
Wenn ich recht verstehe willst du immer nur eine Datei kopieren. Hatte es vor überlesen.
Dann nimm den einfachen copy statt xcopy. Parameter identisch.
Xcopy bietet sich ehr an wenn du mehrer Dateien oder Ordner mit Unterordner kopieren willst.,
Ich persönlich bevorzuge robocopy . Das ist der neuere Befehl
Gruß
Hi Alex
Das mit dem Datum berechnen im Bat ist nicht trivial und eher kompliziert.
Ich würde hier einen Trick anwenden:
mit Robocopy die Daten zunächst in ein Temporär genutzten Ordner verschieben und anschliessen diesen löschen.
Hier mal ein Beispiel aus : http://www.sbspraxis.de/server/srv007/srv_007.html
Erstellen einer Batchdatei zum Bereinigen der Standard Log Verzeichnisse
Da Robocopy selbst keine Option hat um Dateien mit einem bestimmte Alter zu löschen,
sind zwei Schritte notwendig um unser Vorhaben auszuführen.
Der Befehl:
robocopy C:\WINDOWS\system32\LogFiles D:\LOGArchiv /E /R:1 /W:10 /MOV /MINAGE:30
verschiebt alle Dateien die älter als 30 Tage sind aus dem Verzeichnis
C:\WINDOWS\system32\LogFiles in das Verzeichnis D:\LOGArchiv. Dabei werden auch die Unterverzeichnisse berücksichtigt.
Bitte beachten Sie, dass der Befehl in eine einzige Zeile geschrieben werden muss. Aus Platzgründen kann hier die gesamte Befehlszeile nur in zwei Zeilen dargestellt werden.
Anschließend werden sie dort mit dem Befehl
rd d:\LOGArchiv /s /q
gelöscht.
Die verwendeten Optionen im Einzelnen:
/E kopiert alle Unterverzeichnisse
/R:n Anzahl der Wiederholungsversuche, falls beim Kopieren
ein Fehler entsteht (z.B. geöffnete Dateien)
/W:n Wartezeit in sek. zwischen den Wiederholungsversuchen
/MOV Verschiebt die ausgewählten Dateien aus dem Quellverzeichnis in das Zielverzeichnis
/MINAGE n Dateien ausschließen, die jünger als n Tage sind. Diese Zeitangabe bezieht sich auf das Systemdatum.
Alle Optionen zu ROBOCOPY.EXE erhalten Sie über das Hilfe- und Supportcenter zum Windows Resource Kit.
Gruß
Hajo We
Das mit dem Datum berechnen im Bat ist nicht trivial und eher kompliziert.
Ich würde hier einen Trick anwenden:
mit Robocopy die Daten zunächst in ein Temporär genutzten Ordner verschieben und anschliessen diesen löschen.
Hier mal ein Beispiel aus : http://www.sbspraxis.de/server/srv007/srv_007.html
Erstellen einer Batchdatei zum Bereinigen der Standard Log Verzeichnisse
Da Robocopy selbst keine Option hat um Dateien mit einem bestimmte Alter zu löschen,
sind zwei Schritte notwendig um unser Vorhaben auszuführen.
Der Befehl:
robocopy C:\WINDOWS\system32\LogFiles D:\LOGArchiv /E /R:1 /W:10 /MOV /MINAGE:30
verschiebt alle Dateien die älter als 30 Tage sind aus dem Verzeichnis
C:\WINDOWS\system32\LogFiles in das Verzeichnis D:\LOGArchiv. Dabei werden auch die Unterverzeichnisse berücksichtigt.
Bitte beachten Sie, dass der Befehl in eine einzige Zeile geschrieben werden muss. Aus Platzgründen kann hier die gesamte Befehlszeile nur in zwei Zeilen dargestellt werden.
Anschließend werden sie dort mit dem Befehl
rd d:\LOGArchiv /s /q
gelöscht.
Die verwendeten Optionen im Einzelnen:
/E kopiert alle Unterverzeichnisse
/R:n Anzahl der Wiederholungsversuche, falls beim Kopieren
ein Fehler entsteht (z.B. geöffnete Dateien)
/W:n Wartezeit in sek. zwischen den Wiederholungsversuchen
/MOV Verschiebt die ausgewählten Dateien aus dem Quellverzeichnis in das Zielverzeichnis
/MINAGE n Dateien ausschließen, die jünger als n Tage sind. Diese Zeitangabe bezieht sich auf das Systemdatum.
Alle Optionen zu ROBOCOPY.EXE erhalten Sie über das Hilfe- und Supportcenter zum Windows Resource Kit.
Gruß
Hajo We