Top-Themen

Aktuelle Themen (A bis Z)

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

Batch - Dateien kopieren und ggf. umbenennen

Mitglied: schplint

schplint (Level 1) - Jetzt verbinden

03.11.2006, aktualisiert 18.10.2012, 18770 Aufrufe, 9 Kommentare

[Edit Biber:] Originaltitel "[Batch] Dateien kopieren und ggf. umbenennen" beim Verschieben geändert.
Die eckigen Klammern sind nicht mehr speicherbar im Titel.
[Edit]

Hallo allerseits,
habe mittlerweile versucht seit einigen stunden eine Antwort für mein Problem im Forum zu finden, jedoch komme ich einfach nicht weiter.

Mittels einer Batch Datei möchte ich ein Backup von einem Laufwerk machen. Diese Dateien sollen auf ein anderes Laufwerk kopiert werden.
Vor dem kopieren soll geprüft werden, ob bereits Ordner oder Dateien mit gleichen Namen bereits auf dem Backup Laufwerk vorhanden ist. Sollte dies der Fall sein, soll an den Dateien bzw Ordnern das aktuelle Datum angehängt werden.

Mein Ansatz sieht wie folgt aus;
@echo off

Set parentdir=X:\

Set targetdir=F:\

xcopy "%parentdir%" %targetdir% /e /q /h /y
Weiter bin ich bissher nicht gekommen, hoffe ihr könnt mir weiterhelfen, habe wie gesagt mit den anderen Beiträgen aus dem Forum bezüglich dieses Themas nix anfangen können.
Mitglied: bastla
04.11.2006, aktualisiert 18.10.2012
Hallo schplint!

Vielleicht kannst Du konkreter beschreiben, was Du vor hast, insbesondere wie viele verschiedene Dateiversionen Du aufheben willst. Nach Deiner obigen Aussage würden nämlich (durch das Umbenennen) überhaupt niemals alte Sicherungsstände überschrieben, wodurch Du vermutlich mit der Zeit Platzprobleme bekämst.

Nicht sinnvoll ist es, sowohl Ordner- als auch Dateinamen für in der Sicherung bereits vorhandene Elemente zu verändern - eines von beidem genügt. Zur Demonstration zwei Varianten:
Wenn Du kein Problem damit hast, Ordner unter anderem Namen zu speichern, könntest Du gleich die ganze Sicherung in jeweils einen neuen Ordner legen und dort (um Platz zu sparen) nur die veränderten Dateien (Schalter /m) hinkopieren, also etwa so:

01.
xcopy /e /h /m /q /y X:\*.* F:\2006-11-04\*.*
Um das Tagesdatum als Ordnernamen zu verwenden, kannst Du Dich an der unten beschriebenen Lösung (hier geklaut bei Biber) mit VBScript und der Variablen "Datum" orientieren.
Wenn es kein Problem ist, dass sich Dateinamen ändern, könnstest Du die ursprüngliche Ordnerstruktur beibehalten und generell die Sicherungsdateien mit angefügtem Datum speichern. Das ginge so:

Zunächst ist der folgende Code als "GetDate.vbs" zu speichern (in meinem Beispiel im Ordner "Z:\Scripts"), um das aktuelle Datum im Format "JJJJ-MM-TT" zu erzeugen:
01.
WScript.Echo Year(Date) & "-" & Right("0" & Month(Date),2) & "-" & Right("0" & Day(Date), 2)
Die für die Sicherung zuständige Batchdatei sieht wie folgt aus:
01.
@echo off & setlocal 
02.
for /f %%d in ('cscript //nologo Z:\Scripts\GetDate.vbs') do set Datum=%%d 
03.
xcopy /t "X:\*.*" "F:\*.*" 
04.
pushd X:\  
05.
for /r %%i in (*.*) do copy "%%i" "F:\%%~pi%%~ni-%Datum%%%~xi" 
06.
popd
Hier wird im ersten Schritt die Ordnerstruktur kopiert und im zweiten Schritt jede einzelne Datei unter einem um das Datum erweiterten Namen in den entsprechenden Ordner übertragen. Bei Bedarf lassen sich Quelle (X und Ziel (F natürlich variabel gestalten.
Einschränkung: Es werden keine versteckten oder Systemdateien kopiert.

Bei Verwendung dieser Alternative würde in jedem Ordner des Backups die aktuelle Version aller Dateien zu allen bereits vorhandenen hinzugefügt, sodass Du als nächstes nach einer Löschstrategie suchen müsstest ...
Solltest Du wirklich viele verschiedene Versionen benötigen, empfiehlt sich aber ohnehin eher etwas in der Art: Version Backup. Vielleicht findet sich auch hier etwas Brauchbares ...

HTH
bastla

Da der Link zu dem alten, aber wie ich finde, guten "TaskZip" tot zu sein scheint: http://download.pchome.de/download/taskzip-v2.10.0002_484.html
Bitte warten ..
Mitglied: Biber
04.11.2006 um 19:26 Uhr
Moin schplint,

ebenso wie bastla würde ich erst mal, vor der handwerklichen Umsetzung, die Strategie überdenken.
Den jeweils schon vorhandenen Dateien jeweils das Datum des Kopierens anzuhängen, ist auch IMHO keine so bestechende Idee.
Dann hast Du ja definitiv hinterher in Quell- und Zielverzeichnis unterschiedliche Dateinamen - wenn Du tatsächlich mal rücksichern musst, ist es alles Grütze schwierig.
Die zuletzt bearbeiteten Dateinamen in Deinen Applikationen (Word, Excel.. alles was einen "Verlauf" benutzt) passen alle nicht.

However, um Deine Frage dennoch zu beantworten:
Mach 3 xcopy's.
Zuerst stelle mit einem Xcopy fest, welche Dateien schon im Zielverzeichnis vorhanden sind.
Dafür jibbet den Parameter /U.
01.
... 
02.
XCopy [deineXCopyParameter] /U /L quelle ziel\ >%temp%\JibbetSchon.Lst 
03.
XCopy [deineXCopyParameter] /Exclude:%temp%\JibbetSchon.Lst quelle ziel\  
04.
Xcopy [deineXCopyParameter] /U quelle ziel\%datumsprefix%_*.* 
[Das Beiwerk mit Zusammenbasteln von %datumsprefix% hab ich mal übersprungen; gibts hier mehrfach im Bereich Batch und Shell.]

Gruß
Biber
Bitte warten ..
Mitglied: bastla
04.11.2006 um 19:46 Uhr
@Biber

Den jeweils schon vorhandenen Dateien jeweils das Datum des Kopierens anzuhängen, ist auch IMHO keine so bestechende Idee.
Hoffentlich hat's zur Abschreckung gereicht , weil für Versionierung gibt's auf jeden Fall Besseres ...
Übrigens: "%datumsprefix%_*.*" als Ziel funktioniert bei mir nicht.

Und weil Du grad in der Gegend bist: Gibt es eigentlich für XCOPY etwas in der Art von /-i (also: Ziel ist Datei und nicht Verzeichnis)?

Grüße
bastla
Bitte warten ..
Mitglied: Biber
05.11.2006 um 18:26 Uhr
@bastla

Moin bastla,

Übrigens: "%datumsprefix%_*.*" als Ziel funktioniert bei mir nicht.

Jau, stimmt... habe es auch grad ausprobiert...macht der XCopy nicht...*axelzuck*

Dann eben mit einer Zeile "FOR /F... ...copy.... " statt der dritten XCopy-Zeile...
In dieser Exclude-List stehen doch schon alle Quell-Dateien, die es im Zielverzeichnis schon gibt.
Also machen wir das Kopieren dieser Dateien inclusive Umbenennen mit normalem Copy.
01.
... 
02.
for /f "delims=. tokens=1-3" %%a in ("%date%") do set "dateprefix=%%c-%%b-%%a" 
03.
 
04.
XCopy [deineXCopyParameter] /U /L %quelle% %ziel%\ >%temp%\JibbetSchon.Lst 
05.
XCopy [deineXCopyParameter] /Exclude:%temp%\JibbetSchon.Lst %quelle% %ziel%\  
06.
for /f "delims=" %%i in (%temp%\JibbetSchon.Lst) do ( 
07.
    copy "%%i"  "%ziel%\%%~ni_%dateprefix%%%~xi" 
08.
09.
...
Zur zweiten Frage... hab ich auch noch nicht probiert.
Werde ich mal in einer ruhigen Minute.

Grüße
Biber
Bitte warten ..
Mitglied: bastla
05.11.2006 um 18:48 Uhr
@Biber

Bekommst Du mit dem einfachen "copy" nicht Probleme mit dem Ziel-Pfad (gefragt war ja ua "xcopy /e" und damit wohl auch /s)?

Grüße
bastla
Bitte warten ..
Mitglied: Biber
06.11.2006 um 07:57 Uhr
@bastla

Bekommst Du mit dem einfachen "copy" nicht Probleme ...
Stimmt schon, obwohl... "Problem" würde ich es noch nicht nennen...*gg

Dann muss/müsste eben noch eine "FOR /R quellroot....DO "-Anweisung außen drumherum und je Unterverzeichnis ein XCopy OHNE /s /e abgefeuert werden...

Ich denke aber, das eigentliche Problem ist mein Unterbewusstsein, das sich offensichtlich hartnäckig dagegen sträubt, sich mit schplints Plan ernsthaft anzufreunden.

Handwerklich lösbar ist es sicher, aber es ist nicht so charmant...

Grüße
Biber
Bitte warten ..
Mitglied: bastla
06.11.2006 um 08:22 Uhr
@Biber

Ich denke aber, das eigentliche Problem ist mein Unterbewusstsein, das sich offensichtlich hartnäckig dagegen sträubt, sich mit schplints Plan ernsthaft anzufreunden.

ACK, wobei ein (fertiger) Plan ja noch gar nicht wirklich vorliegt.

(Ich hab's oben auch nur zu Übungszwecken versucht - was Du ja nicht brauchst )

Grüße
bastla
Bitte warten ..
Mitglied: 44227
17.07.2007 um 21:38 Uhr
Hallo zusammen,

ich würd egerne was ähnliches, nur noch viel einfacheres machen.

Ich hätte gerne eine Batch, die mir die datei "Z:\proggies\Dokument.doc" in "f:\Backup" kopiert und dabei den Dateinamen mit dem aktuellen Datum ergänzt im sinne 070707_Dokuemtn.doc.

Ist so was einfach möglich?

Danke und Gruß,
Nermin
Bitte warten ..
Mitglied: Biber
17.07.2007 um 21:55 Uhr
Moin Hajvazovic,

Dich hab ich ja lange nicht gelesen hier, welcome bäck.

Mach bitte für Deine Frage einen neuen Beitrag auf, falls Du über Forumssuche nach "batch umbenennen Zeit Datum" nichts Passendes findest.

Denn dieser Beitrag ist schon so verkorkst, dass ich den auch jetzt sofort schließe...
schplint hat sich sicherlich schon anderen wichtigen Fragen zugewandt.

Grüße
Biber

Ach ja, und ich verschiebe gleich mal den Beitrag von "Windows" nach "Batch & Shell".
Obwohl ich eigentlich gar nicht dort haben will...
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Mittels Batch Ordner umbenennen und Dateien kopieren

gelöst Frage von held.christophBatch & Shell12 Kommentare

Guten Tag allerseits Ich bin absoluter Leihe und konnte Dank mehr oder weniger grossen Suche in den Foren bereits ...

Batch & Shell

Verzeichniss überwachen Datei kopieren und umbenennen

gelöst Frage von fischle63Batch & Shell6 Kommentare

Hallo, Habe folgendes Problem: In einem Verzeichniss sind Dateien mit dem Suffix ".nd" enthalten. Bsp. "00000010.nd" Ich brauche eine ...

Batch & Shell

Batch Datei Kopieren

gelöst Frage von FragerBatch & Shell17 Kommentare

Hallo Zusammen, ich bekomme es nicht hin ich muss aus einem Ordner (liegt auf einem Server) eine von vielen ...

Batch & Shell

Batch: Loop zum kopieren von Dateien

gelöst Frage von BiffBaffBatch & Shell1 Kommentar

Hallo zusammen, leider bin ich nicht sehr vertraut mit dem erstellen von Batch dateien daher mag die Frage vielleicht ...

Neue Wissensbeiträge
Peripheriegeräte
Unterschrank für HP Drucker
Tipp von NixVerstehen vor 1 TagPeripheriegeräte1 Kommentar

Als kurzen Freitags-Tipp möchte ich gerne meinen neuen Drucker-Unterschrank Modell Amica KS 15423W vorstellen. Das Gerät eignet sich hervorragend ...

Windows 10
Windows 10 - Probleme mit Point-And-Print
Tipp von emeriks vor 2 TagenWindows 103 Kommentare

Hi, wir kämpfen z.Z. mit einigen Druckertreibern, welche unter Win10 beim Verbinden eines Druckers von Printserver mit dem Dialog ...

Windows 10

Windows 10 1803 - Ihr Roamingbenutzerprofil wurde nicht vollständig synchronisiert

Anleitung von Deepsys vor 2 TagenWindows 101 Kommentar

Bei allen Windows 10 1803 PCs traten Probleme mit den Servergespeicherten Profilen auf. Das Abmelden dauerte sehr lange und ...

Exchange Server
Exchange - Fehler mit 2018-07 Sicherheitsupdate
Tipp von ArnoNymous vor 4 TagenExchange Server7 Kommentare

Hallo, es gibt mal wieder Freude mit den MS-Updates. KB4338814 führt dazu, dass der Exchange keine Mails mehr zustellt. ...

Heiß diskutierte Inhalte
Humor (lol)
Freitagsfrage: Was tun, wenn der Admin der DAU ist?
gelöst Frage von VoiperHumor (lol)32 Kommentare

Moin Zusammen, Eine nicht ganz ernst gemeinte Frage an die Außendienstler unter uns. Zusammenfassung: Ein Inhouse Admin ruft bei ...

LAN, WAN, Wireless
HP Probook 470 G4 - abbrechende Downloads
Frage von joern1LAN, WAN, Wireless19 Kommentare

Folgendes Problem, für einen Tipp wäre ich dankbar: Bei WLAN-Verbindung zum Internet (nicht LAN) kommt es bei etwas größeren ...

Windows Netzwerk
LTE Modul - Kein Internet trotz Verbindung
Frage von killtecWindows Netzwerk19 Kommentare

Hallo, ich habe hier ein Dell 7390 2-in-1 mit W10 Pro wo ich nachträglich eine LTE-Karte (Original Dell DW5811e ...

Router & Routing
Routing Problem mit Kaskade FritzBox und pfsense zugeriff nur von der firewall auf die clients und 0.0.0.0
Frage von ukl1967Router & Routing16 Kommentare

Hallo, ich habe ein an sich triviales Problem elches ich allerdings nicht gelöst bekomme. NAS 10.5.10.53 Mein Netz baut ...