Batch. Auf das aktuelle Datum ... Tage aufrechnen und das Datum dann in .txt Datei schreiben
Hallo Administratoren
ich bin gerade dabei einen Lizenz Script in Batch zu schreiben.
Also zuerst wird durch "set /p a=" festgelegt wie viele Tage die Version gültig ist.
Mein Problem ist aber, dies mit dem aktuellen Datum zu verrechnen.
Hier ein Beispiel:
Heute ist der 31.01.2010 und die Lizenz soll 100 Tage gültig sein.
So jetzt sollen diese 100 Tage auf das Datum im Beispiel aufgerechnet werden und anschließend in eine .txt Datei abgespeichert werden.
Ich habe aber keine Ahnung wie ich das programmieren soll.
Wenn es möglich wäre, könnte man ja auch die verschieden langen Monate mit einberechnen.
Ich würde mich sehr freuen wenn jemand eine Idee hat.
Gruß Motorcross
ich bin gerade dabei einen Lizenz Script in Batch zu schreiben.
Also zuerst wird durch "set /p a=" festgelegt wie viele Tage die Version gültig ist.
Mein Problem ist aber, dies mit dem aktuellen Datum zu verrechnen.
Hier ein Beispiel:
Heute ist der 31.01.2010 und die Lizenz soll 100 Tage gültig sein.
So jetzt sollen diese 100 Tage auf das Datum im Beispiel aufgerechnet werden und anschließend in eine .txt Datei abgespeichert werden.
Ich habe aber keine Ahnung wie ich das programmieren soll.
Wenn es möglich wäre, könnte man ja auch die verschieden langen Monate mit einberechnen.
Ich würde mich sehr freuen wenn jemand eine Idee hat.
Gruß Motorcross
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 134783
Url: https://administrator.de/contentid/134783
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
14 Kommentare
Neuester Kommentar
Du kannst mit VB sript auf die Funktion now zugreifen. Die liefert Dir das aktuelle Datum und Uhrzeit dazu zählst Du 100 dazu (da ist die Länger der Monate belanglos weil es Tage sind ) und dann kannst Du (musst Du aber nicht) für die Optik entweder mit Left oder mit FormatDateTime noch die Minuten und Sekunden abschneiden.
Naja, man könnte natürlich tricksen
Du erstellst eine Batch-Datei mit folgendem Code
Danach musst du nur noch die erste Zeile in Batch auslesen und dir Folgeschritte überlegen.
Dann wäre Batch und VBS vereint
Das Rechnen mit Datum in VBS o.ä. geht einfacher als in Batch!
Aber mal sehen, was bastla oder biber zaubern
Gruss
Tsuki
<Edit>
Zeile 5 vervollständigt
</Edit>
Du erstellst eine Batch-Datei mit folgendem Code
>"C:\MeinDatum.vbs" Echo Set FSO = CreateObject("Scripting.FileSystemObject")
>>"C:\MeinDatum.vbs" Echo Set MyFile = FSO.CreateTextFile("c:\Zeit.txt", true)
>>"C:\MeinDatum.vbs" Echo MyFile.WriteLine (Left(now + 100,11))
>>"C:\MeinDatum.vbs" Echo MyFile.Close
Call "C:\MeinDatum.vbs"
del C:\MeinDatum.vbs /q
for %%i in ("c:\Zeit.txt") do Echo %%i
Danach musst du nur noch die erste Zeile in Batch auslesen und dir Folgeschritte überlegen.
Dann wäre Batch und VBS vereint
Das Rechnen mit Datum in VBS o.ä. geht einfacher als in Batch!
Aber mal sehen, was bastla oder biber zaubern
Gruss
Tsuki
<Edit>
Zeile 5 vervollständigt
</Edit>
Also, ganz einfach:
Was macht VBS, wenn ich
schreibe?
Es rechnet zum heutigen Tage (31.01.2010) 3 Tage dazu. Heißt, das Ergebnis wäre Mittwoch, 03.02.2010.
VBS weiß die Anzahl der Tage im Monat und auch wann Schaltjahre sind (bis natürlich zu einem gewissen Zeitpunkt irgendwann in der Zukunf )
Es rechnet nur mit den Tagen!!!!! wie es die Monate und selbst Jahre im Detail berechnet, weiß ich nicht. Kann ich nur vermuten, dass es da viele Ifs und Elses und Selects und Modulas etc. geben kann.
Spielt aber für uns keine Rolle.VBS tut es einfach.
In deinem Fall mit der Zahl "100" brauchst du dir keine Gedanken zu machen, dass das Ergebnis nicht stimmt!
Gruss
Tsuki
Was macht VBS, wenn ich
now + 3
Es rechnet zum heutigen Tage (31.01.2010) 3 Tage dazu. Heißt, das Ergebnis wäre Mittwoch, 03.02.2010.
VBS weiß die Anzahl der Tage im Monat und auch wann Schaltjahre sind (bis natürlich zu einem gewissen Zeitpunkt irgendwann in der Zukunf )
Es rechnet nur mit den Tagen!!!!! wie es die Monate und selbst Jahre im Detail berechnet, weiß ich nicht. Kann ich nur vermuten, dass es da viele Ifs und Elses und Selects und Modulas etc. geben kann.
Spielt aber für uns keine Rolle.VBS tut es einfach.
In deinem Fall mit der Zahl "100" brauchst du dir keine Gedanken zu machen, dass das Ergebnis nicht stimmt!
Gruss
Tsuki
@AndreasBrecht
Grüße
bastla
... für die Optik entweder mit Left oder mit FormatDateTime noch die Minuten und Sekunden abschneiden ...
... oder gleich "Date
" anstelle von "Now
" verwenden.Grüße
bastla
@tsuki
"Batch-Zauberei" hätte ich erst gar nicht versucht (das war damals nur zum Spielen und nicht wirklich von mir verbrochen) - für Datumsberechnungen ist VBS definitiv die bessere Wahl, daher wäre es auch bei mir ein (temporäres) VBScript geworden ...
... wobei ich allerdings nur den Berechnungsteil ausgelagert und das Datum zur weiteren Verwendung wieder an den Batch zurückgegeben hätte, also etwa:
Noch als Anmerkung: Das Script in "C:\MeinDatum.vbs" zu speichern dürfte in vielen Fällen an fehlenden Schreibrechten scheitern, daher besser "%temp%" verwenden ...
Grüße
bastla
"Batch-Zauberei" hätte ich erst gar nicht versucht (das war damals nur zum Spielen und nicht wirklich von mir verbrochen) - für Datumsberechnungen ist VBS definitiv die bessere Wahl, daher wäre es auch bei mir ein (temporäres) VBScript geworden ...
... wobei ich allerdings nur den Berechnungsteil ausgelagert und das Datum zur weiteren Verwendung wieder an den Batch zurückgegeben hätte, also etwa:
set "G=%temp%\GetDate.vbs"
>"%G%" echo WScript.Echo Date + 100
for /f %%i in ('cscript //nologo "%G%"') do set "Datum=%%i"
del "%G%"
Grüße
bastla
@bastla,
das tolle an deinen Scripten ist (und an bibers auch!) wie Sachen nochmals "weggekürzt" werden können
Vielen Dank!
@Motorcross
ich hoffe, meine Antwort in meiner PM an dich hilft! Wenn nicht, einfach weiterfragen. So lernen wir gemeinsam
Gruss
Tsuki
das tolle an deinen Scripten ist (und an bibers auch!) wie Sachen nochmals "weggekürzt" werden können
Vielen Dank!
@Motorcross
ich hoffe, meine Antwort in meiner PM an dich hilft! Wenn nicht, einfach weiterfragen. So lernen wir gemeinsam
Gruss
Tsuki