Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch - Datei Kopieren und neue Datei erzeugen

Frage Entwicklung Batch & Shell

Mitglied: MasterSchlumpf

MasterSchlumpf (Level 1) - Jetzt verbinden

27.02.2015, aktualisiert 03.03.2015, 1267 Aufrufe, 6 Kommentare

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
Mitglied: hajowe
LÖSUNG 27.02.2015, aktualisiert 03.03.2015
Hi Alex

01.
 
02.
@Echo off 
03.
 
04.
set jahr=%date:~-4% 
05.
set monat=%date:~-7,2% 
06.
set tag=%date:~-10,2% 
07.
 
08.
set Quelle="C:\Program FILES\Daten.mdb" 
09.
set Ziel="d:\Daten%jahr%%Monat%%Tag%.mdb" 
10.
 
11.
 
12.
xcopy /Y %Quelle%  %Ziel%  
13.
 
Variablen setzen (set)
Quelle Ziel zuweisen
Tip --> xcopy /? zeigt dir alle möglichen Parameter mit Erklärung


Gruß
Hajowe
Bitte warten ..
Mitglied: Dilbert-MD
27.02.2015 um 15:32 Uhr
Hallo

Bleibt noch die Frage, was passiert, wenn die Datei in Benutzung ist.

Wie wäre es mit einem Sync-Tool á la DirSync mit entsprechenden Kommandozeilenparametern.

Gruß
Holger
Bitte warten ..
Mitglied: MasterSchlumpf
03.03.2015 um 16:44 Uhr
Hallo Hajowe,

vielen Dank für Deinen Code. Genauso wollte ich es haben.

Bei mir erscheint immer die Abfrage, ob die Zieldatei eine Datei oder ein Verzeichnis ist. Kann man dies festlegen, sodass die Abfrage nicht mehr erscheint?

Grüße
Alex
Bitte warten ..
Mitglied: hajowe
LÖSUNG 03.03.2015, aktualisiert 04.03.2015
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ß
Bitte warten ..
Mitglied: MasterSchlumpf
04.03.2015 um 16:18 Uhr
Hallo zusammen,

vielen Dank für Deine Hilfe, Hajowe.
Das funktioniert genauso wie ich es haben möchte.

Jetzt würde ich gern noch etwas intergrieren.
Da die Sicherungen nicht gelöscht werden, wird das Verzeichnis irgendwann mit alten Dateien vollgemüllt. Gibt es eine Möglichkeit wie ich mittels der gleichen Batch-Datei alle Dateien die z.B. älter als einen Monat sind lösche?

Beste Grüße
Alex
Bitte warten ..
Mitglied: hajowe
04.03.2015 um 16:36 Uhr
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
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Ordner per Batch verschieben, Datei kopieren (2)

Frage von Shape.Shifter zum Thema Batch & Shell ...

Batch & Shell
Batch: Word Datei kopieren und umbennen (9)

Frage von ExcelNoob177 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...