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 Backup einer Datei und Wochentag hinzufügen im Dateinamen..WIE

Frage Entwicklung Batch & Shell

Mitglied: sebattosai

sebattosai (Level 1) - Jetzt verbinden

03.03.2008, aktualisiert 18.10.2012, 14769 Aufrufe, 9 Kommentare

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
Mitglied: miniversum
03.03.2008, aktualisiert 18.10.2012
Wie man den Wochentag ermittelt findest du hier:
http://www.administrator.de/forum/wochentag-per-batch-ermitteln-80546.h ...

Daraus kann man dann weiter folgendes machen (Ungetestet, Annahme: Variable mit Wochentag heißt %wt%):
01.
 set "quelle=C:\verzeihnis der zu sichernden dateien" 
02.
set "ziel=C:\sicherungsverzeichnis" 
03.
 
04.
FOR /F "delims=" %%i in ('dir /B /a-d "%quelle%"') do copy /Y "%%~fi" "%ziel%\%%~ni%wt%%%~xi"
Bitte warten ..
Mitglied: stbewo
03.03.2008 um 11:44 Uhr
Hi,

mit

@echo off
for /F "tokens=1-5 skip=1 delims= " %%a in ('now.exe') do (
echo Wochentag =%%a Monat = %%b Datum = %%c Uhrzeit = %%d Jahr = %%e
xcopy C:\DB\Datenbank.db c:\backup\%%a-Datenbank.db
)
pause

und dem NOW.EXE Programm aus den Reskit Tools kannst Du den Wochentag extrahieren.

Gruß
Stefan
Bitte warten ..
Mitglied: sebattosai
03.03.2008 um 11:58 Uhr
hallo

vielen dank für die hilfe, aber ich versteh nur kryptische zeichen bisher...könntet ihr vllt kommentieren was die einzelnen zeilen machen?

danke
Bitte warten ..
Mitglied: miniversum
03.03.2008 um 12:12 Uhr
Ich kommentiere/erkläre mal meinen Teil:

Zuerst werden den Variabeln %quelle% und %ziel% das Quell- und Zielverzeichniss zugewiesen.
set "quelle=C:\verzeihnis der zu sichernden dateien"
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 durch
FOR /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
Bitte warten ..
Mitglied: Biber
03.03.2008 um 12:23 Uhr
...und falls ich auch helfen darf:
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 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
Bitte warten ..
Mitglied: sebattosai
03.03.2008 um 12:31 Uhr
hi biber,

natürlich ist es meine arbeit. aber ich bat ja um hilfe wie sowas gehen kann.

ich hatte schon versucht mit xcopy

allerdings fehlt mir halt nur das mit dem wochentag und soweit ich das in den anderen threads lesen konnte würde sowas nicht gehen. daher hab ich mal versucht etwas konkreter in dem zusammenhang zu fragen..


mtg
Bitte warten ..
Mitglied: bastla
03.03.2008 um 12:48 Uhr
@stbewo

Um nicht ein externes Tool voraussetzen zu müssen, vielleicht einfach so:
01.
set "GWD=%temp%\GetWeekday.vbs" 
02.
echo WScript.Echo WeekdayName(Weekday(Date))>%GWD% 
03.
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
Bitte warten ..
Mitglied: Biber
03.03.2008 um 14:00 Uhr
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:

01.
::----Getwochentach.cmd 
02.
@echo off & setlocal 
03.
Set tmpvbs="%temp%\cwd.vbs" 
04.
Echo Wscript.echo Array("Sonntag","Montach", "Dienstag","Mittwoch", "Donnerstag", "Freitag", "Samstag")(weekday(wscript.Arguments(0))-1)>"%tmpvbs%" 
05.
For /f %%i in ('cscript //nologo %tmpvbs% %date%') do @echo [DEMO] %date%: set "Wochentach=%%i" 
Output
01.
>e:\schnipsel\GetWochentach.cmd 
02.
[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]
Bitte warten ..
Mitglied: bastla
03.03.2008 um 15:02 Uhr
@Biber

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) ...
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Batch & Shell
Ä in batch Datei (12)

Frage von BergEnte zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...