Batch Datei Backup einer Datei und Wochentag hinzufügen im Dateinamen..WIE
guten tag,
ich habe folgenden auftrag: eine datenbank datei soll gesichert werden.
das ganze soll über eine batch datei ablaufen und jedes mal soll der jeweilige wochentag an dateinamen angehängt werden. das ganze läuft von Mo - Fr und in der nächsten woche sollen diese ohne nachfrage wieder überschrieben werden, als neues backup.
ich kenn mich garnicht damit aus. hab google gefragt aber dort kommen keine lösungen die mir helfen den wochentag richtig einzufügen.
hatte vor das ganze mit xcopy zu bewerkstelligen, aber wie gesagt: wochentag muss auch dann daran
kann mir jmd helfen bitte?
vielen dank
mtg
ich habe folgenden auftrag: eine datenbank datei soll gesichert werden.
das ganze soll über eine batch datei ablaufen und jedes mal soll der jeweilige wochentag an dateinamen angehängt werden. das ganze läuft von Mo - Fr und in der nächsten woche sollen diese ohne nachfrage wieder überschrieben werden, als neues backup.
ich kenn mich garnicht damit aus. hab google gefragt aber dort kommen keine lösungen die mir helfen den wochentag richtig einzufügen.
hatte vor das ganze mit xcopy zu bewerkstelligen, aber wie gesagt: wochentag muss auch dann daran
kann mir jmd helfen bitte?
vielen dank
mtg
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 82173
Url: https://administrator.de/contentid/82173
Ausgedruckt am: 14.11.2024 um 23:11 Uhr
9 Kommentare
Neuester Kommentar
Wie man den Wochentag ermittelt findest du hier:
Wochentag per Batch ermitteln
Daraus kann man dann weiter folgendes machen (Ungetestet, Annahme: Variable mit Wochentag heißt %wt%):
Wochentag per Batch ermitteln
Daraus kann man dann weiter folgendes machen (Ungetestet, Annahme: Variable mit Wochentag heißt %wt%):
set "quelle=C:\verzeihnis der zu sichernden dateien"
set "ziel=C:\sicherungsverzeichnis"
FOR /F "delims=" %%i in ('dir /B /a-d "%quelle%"') do copy /Y "%%~fi" "%ziel%\%%~ni%wt%%%~xi"
Ich kommentiere/erkläre mal meinen Teil:
Zuerst werden den Variabeln %quelle% und %ziel% das Quell- und Zielverzeichniss zugewiesen.
Dashier zerlegen ich jetzt mal damit es leichter ist zu erklären.
Ich lasse mir eine Liste erstellen mit allen Dateien im Quellverzeichnis
Wie das genau mit dem %%~ni und %%~xi funktioniert kanst du in der Hilfe zum Forbefehl ganz am Ende nachlesen (in der Eingabeaufforderung "for /?" eingeben).
miniversum
Zuerst werden den Variabeln %quelle% und %ziel% das Quell- und Zielverzeichniss zugewiesen.
set "quelle=C:\verzeihnis der zu sichernden dateien"
set "ziel=C:\sicherungsverzeichnis"
set "ziel=C:\sicherungsverzeichnis"
Dashier zerlegen ich jetzt mal damit es leichter ist zu erklären.
FOR /F "delims=" %%i in ('dir /B /a-d "%quelle%"') do copy /Y "%%~fi" "%ziel%\%%~ni%wt%%%~xi"
Ich lasse mir eine Liste erstellen mit allen Dateien im Quellverzeichnis
dir /B /a-d "%quelle%"
Diese Liste gehe ich einzeln durchFOR /F "delims=" %%i in ('dir /B /a-d "%quelle%"') do ...
und kopiere jede Datei (mit überschreiben)copy /Y
von der quelle"%%~fi"
ins Ziel. Im Ziel werden sie gleich umbenant (das macht der Copy Befehl gleich mit) in: DateinamenWochentag.Endung"%ziel%\%%~ni%wt%%%~xi"
Wie das genau mit dem %%~ni und %%~xi funktioniert kanst du in der Hilfe zum Forbefehl ganz am Ende nachlesen (in der Eingabeaufforderung "for /?" eingeben).
miniversum
...und falls ich auch helfen darf:
Das heißt übersetzt: Du musst Dich damit auseinandersetzen.
Und "Auftrag" heißt: Es ist Dein evtl. sogar bezahlter Job.
Ich finde die Hinweise auf die -nicht schlechten und nicht unverständlichen- Hilfen zu FOR am CMD-Prompt richtig und kann nicht erkennen, dass Du Dich um eigenes Erarbeiten bemühst, wenn innerhalb von Minuten nach Posten einer Fertiglösung gleich die Bitte um Erklärung kommt.
Wir helfen hier gerne, wenn es irgendwo hakt, aber es sollte zumindest erkennbar sein, dass ein eigener Versuch vorausgegangen ist.
Grüße
Biber
ich habe folgenden auftrag: eine datenbank datei soll gesichert werden.
das ganze soll über eine batch datei ablaufen....
ich kenn mich garnicht damit aus...
das ganze soll über eine batch datei ablaufen....
ich kenn mich garnicht damit aus...
Das heißt übersetzt: Du musst Dich damit auseinandersetzen.
Und "Auftrag" heißt: Es ist Dein evtl. sogar bezahlter Job.
Ich finde die Hinweise auf die -nicht schlechten und nicht unverständlichen- Hilfen zu FOR am CMD-Prompt richtig und kann nicht erkennen, dass Du Dich um eigenes Erarbeiten bemühst, wenn innerhalb von Minuten nach Posten einer Fertiglösung gleich die Bitte um Erklärung kommt.
Wir helfen hier gerne, wenn es irgendwo hakt, aber es sollte zumindest erkennbar sein, dass ein eigener Versuch vorausgegangen ist.
Grüße
Biber
@stbewo
Um nicht ein externes Tool voraussetzen zu müssen, vielleicht einfach so:
Damit bist Du dann noch nicht einmal von der in der Systemsteuerung eingestellten Sprache / Datumsformatierung abhängig.
Grüße
bastla
Um nicht ein externes Tool voraussetzen zu müssen, vielleicht einfach so:
set "GWD=%temp%\GetWeekday.vbs"
echo WScript.Echo WeekdayName(Weekday(Date))>%GWD%
for /f %%i in ('cscript //nologo %GWD%') do set WoTag=%%i
Damit bist Du dann noch nicht einmal von der in der Systemsteuerung eingestellten Sprache / Datumsformatierung abhängig.
Grüße
bastla
Na ja,
um es abschließend zu klären:
Mit native Batch geht es eigentlich nicht.
Weil es dort keine "Datentyp Datum"-Unterstützung gibt. Ende.
Workarounds
a) entweder aus den Trümmern des Datumstextes, z.B. "02.03.2008" Zahlenwerte bilden und selbst eine Berechnungsformel für Wochentage nachkaspern, die Papst Gregor II. und Johannes Heesters gemeinsam entwickelt haben.
-oder-
b) den Wochentags-Textstring von Now.exe/Robocopy.exe o.ä. liefern lassen, aus einer Ausgabezeile rausfieseln und mit messerscharfer Logik von "Mon" auf "Montag" oder von "Thu" auf "Thonnerstach" schliessen(s.o.)
c) oder jemand fragen, der etwas davon versteht, i.e. eine Skriptsprache, die mit Datumswerten "rechnen" kann wie z.b. VBSkript und der aus dem Batch heraus einen Einzeiler an den Hals werfen:
Output
Beispiel zu a) und b) findest Du ebenfalls im Forum.
Eine Musterlösung gibt es dafür nicht -- solange Du den Leuten nicht verständlich machen kannst, dass "Wochentags-Ordner" bei M$ nicht vorgesehen sind trotz 4x neuer Hotfixes täglich, solange musst Du individuelle Workarounds zusammenstoppeln.
Oder zumindest Copy & Pasten.
Grüße
Biber
[Edit] @bastla
Na gut, der Name der WeekdayName()-Funktion ist mir Montag morgens noch ganz fremd...
[/Edit]
um es abschließend zu klären:
Mit native Batch geht es eigentlich nicht.
Weil es dort keine "Datentyp Datum"-Unterstützung gibt. Ende.
Workarounds
a) entweder aus den Trümmern des Datumstextes, z.B. "02.03.2008" Zahlenwerte bilden und selbst eine Berechnungsformel für Wochentage nachkaspern, die Papst Gregor II. und Johannes Heesters gemeinsam entwickelt haben.
-oder-
b) den Wochentags-Textstring von Now.exe/Robocopy.exe o.ä. liefern lassen, aus einer Ausgabezeile rausfieseln und mit messerscharfer Logik von "Mon" auf "Montag" oder von "Thu" auf "Thonnerstach" schliessen(s.o.)
c) oder jemand fragen, der etwas davon versteht, i.e. eine Skriptsprache, die mit Datumswerten "rechnen" kann wie z.b. VBSkript und der aus dem Batch heraus einen Einzeiler an den Hals werfen:
::----Getwochentach.cmd
@echo off & setlocal
Set tmpvbs="%temp%\cwd.vbs"
Echo Wscript.echo Array("Sonntag","Montach", "Dienstag","Mittwoch", "Donnerstag", "Freitag", "Samstag")(weekday(wscript.Arguments(0))-1)>"%tmpvbs%"
For /f %%i in ('cscript //nologo %tmpvbs% %date%') do @echo [DEMO] %date%: set "Wochentach=%%i"
Output
>e:\schnipsel\GetWochentach.cmd
[DEMO] 03.03.2008: set "Wochentach=Montach"
Beispiel zu a) und b) findest Du ebenfalls im Forum.
Eine Musterlösung gibt es dafür nicht -- solange Du den Leuten nicht verständlich machen kannst, dass "Wochentags-Ordner" bei M$ nicht vorgesehen sind trotz 4x neuer Hotfixes täglich, solange musst Du individuelle Workarounds zusammenstoppeln.
Oder zumindest Copy & Pasten.
Grüße
Biber
[Edit] @bastla
Damit bist Du dann noch nicht einmal von der in der Systemsteuerung eingestellten Sprache / Datumsformatierung abhängig.
Mit meiner Variante kannst Du es sogar auf Oldenburger Platt oder Imbissbudendeutsch ausgeben... Na gut, der Name der WeekdayName()-Funktion ist mir Montag morgens noch ganz fremd...
[/Edit]
@Biber
Grüße
bastla
P.S.: Die von Dir verwendete Schreibweise für den Array-Index gefällt mir sehr gut (kannte ich bis vor kurzem auch noch nicht) ...
Mit meiner Variante kannst Du es sogar auf Oldenburger Platt oder Imbissbudendeutsch ausgeben...
Könntest Du erstere Fassung noch posten? ... der Name der WeekdayName()-Funktion ist mir Montag morgens noch ganz fremd...
Abfallprodukt der "Scripting Games" - war mir vorher auch noch nie aufgefallen ...Grüße
bastla
P.S.: Die von Dir verwendete Schreibweise für den Array-Index gefällt mir sehr gut (kannte ich bis vor kurzem auch noch nicht) ...