77880
Goto Top

Dateinamen um die Angabe der Kalenderwoche ergänzen

Hallo,

ich habe ein Skript geschrieben, das mit dem Windows-Tool ntbackup eine Sicherung erstellt.
Am Montag wird eine Voll-Sicherung durchgeführt, an den restlichen Tagen eine inkrementelle.
Das klappt soweit auch.

Nur möchte ich mehrere Sicherungen speichern, weswegen die sich die Dateinamen unterscheiden müssen. Dazu möchte ich die Kalenderwoche in den Dateinamen einbauen.
Wie mache ich das?

Hier mein Skript:


@echo off
@rem Written by A P (Juni 2009)

FOR /F "TOKENS=1 DELIMS= " %%A IN ('DATE/T') DO SET DAY=%%A

IF "%DAY%"=="Mo" GOTO FULL
IF "%DAY%"=="Di" GOTO INCN
IF "%DAY%"=="Mi" GOTO INCN
IF "%DAy%"=="Do" GOTO INCN
IF "%Day%"=="Fr" GOTO INCN
GOTO EXIT

:FULL
ntbackup backup D:\temp /M normal /J "Systemstate" /L:s /V:yes /F "D:\backup.bkf" [Speicherort und Dateiname]
GOTO EXIT

:INCN
ntbackup backup D:\temp /A /M incremental /J "Systemstate" /L:s /V:yes /F "D:\backup.bkf"
GOTO EXIT

:EXIT

Wäre schön, wenn ihr mir helfen könntet, wie ich die Variable Kalenderwoche in den Dateinamen bekomme.
Vielen Dank schon mal!

Gruß,
Iwantu

Content-Key: 118433

Url: https://administrator.de/contentid/118433

Printed on: April 25, 2024 at 12:04 o'clock

Mitglied: 77559
77559 Jun 17, 2009 at 18:26:54 (UTC)
Goto Top
Hallo Iwantu.

Schau mal 7 Beiträge zurück, da habe ich heute fast die gleiche Antwort gepostet face-wink

Beim ermitteln der jeweiligen Daten kann dir


oder auch die
Date and Time functions aus Ritchie Lawrence' Batch Library helfen.

Gruß
LotPings
Member: Biber
Biber Jun 17, 2009 at 18:45:30 (UTC)
Goto Top
Moin Iwantu,

da ja nun beide angegebenen Quellen eher etwas holzig zu Lesen sind, eine kleine Motivationshilfe.

In meinem angegebenen Workshop III ist eine GetAllDateTimeInfos.cmd zum Copy & Pasten.

Wenn Du die aufrufst mit einem Parameter im Datumsformat (oder OHNE Parametr für heutiges Datum), kannst Du auf folgende abgeleitete Werte zugreifen:
>GetAllDateTimeInfos 19.06.2009
INDate=19.06.2009
INTime=20:35:49,94
DateOrder=TT-MM-JJ
KW=24
OSKW=25
DoW=6
DoY=170
DD=19
TT=19
MM=06
JJ=2009
YY=2009
hh=20
min=35
ss=49
ms=94
... und zwar direkt durch Filtern dieser Ausgabe oder über das Setzen/Verwenden der gleichnamigen Variablen.
In Deinem Fall wären KW bzw. OSKW interessant.

Gegen Ende des Tuts habe ich ein Beispiel, wie der DoY/DayOfYear in den Dateinamen eingefügt werden kann - diesen Einzeiler müsstest Du nur noch von DoY auf Kalenderwoche anpassen.

Grüße
Biber
Member: marinux
marinux Jun 17, 2009, updated at Oct 18, 2012 at 16:38:27 (UTC)
Goto Top
Mitglied: 77880
77880 Jun 18, 2009 at 11:16:16 (UTC)
Goto Top
Hallo,

danke für eure Antworten. Ich habe das Tut schon überflogen, aber nicht wirklich verstanden face-smile
Jetzt wird es etwas einfacher. Das könnte selbst ich verstehen, der eigentlich vom skripten überhaupt keine Ahnung hat.

Also, danke.

Gruß,
Iwantu
Mitglied: 77880
77880 Jun 22, 2009 at 05:52:36 (UTC)
Goto Top
Hallo Biber,

wenn ich deine GetAllDateTimeInfos.cmd starte, kommt immer die Fehlermeldung
"...\Temp\12724.vbs(2, 1) Laufzeitfehler in Microsoft VB\Temp\12724.vbs(2, 1) Laufzeitfehler in Microsoft VB"

Was mache ich falsch? Oder muss ich da doch noch etwas verändern?

Gruß,
Iwantu
Member: Biber
Biber Jun 22, 2009 at 08:40:58 (UTC)
Goto Top
Moin Iwantu,

nein, diese Fehlermeldung weckt bei keine Erinnerungen an irgendetwas Vertrautes.
Müssen wir uns rantasten.

Geplanterweise soll die Batchdatei einen "zufällig" benannten temporären Schnipsel namens <Zufallszahl>.vbs im %temp%-Verzeichnis erzeugen.
Macht die Zeile SET "vbsSnippet=%temp%\%random%.vbs"

Und dieses Winz-VBS sollte ein paar Zeilen tiefer mit "cscript //logo %vbsSnippet%" aufgerufen werden.

Wie es der Zufall will habe ich gerade am Wochenende idesen Schnipsel in einem netten Dialog mit Moc06 unten in dem angegebenen Tutorial gepostet.
Copy & Paste die paar Zeilen mal, speichere die irgendwo (wo Du sie wiederfindest) als irgendwas.vbs ab und führe diesen Aufruf von Hand vom CMD-Prompt aus durch.

Damit wir den Fehler eingrenzen können.

Grüße
Biber