Hallo rundherum, meine Pc-Kenntnisse sind äussert mies, das weiß ich. Seit Stunden versuche ich mit viel Sucherei im Netz eine Batch-Datei zu schreiben, die Folgendes ausführen soll: 1) Aktuelles Tagesdatum (14.01.2020) in einer Variablen sichern. 2) Systemdatum auf ein festes, anderes Datum (z.B. 24.12.2019) setzen. 3) Programm in c:\testdir\test.exe starten. 4) Systemdatum aus Variable (Pkt. 1) nach Programmende (3) rekontruieren. Punkt 2 bekomme ich hin mit date = 24.12.2019 Punkt 3 geht auch mit c:\testdir\test.exe aber der Rest will ums verrecken nicht. Für jemand, ders weiß sicher ein Kinderspiel, für mich leider nicht. Könnte mir jemand einen Tipp geben? Danke Uwe
Willst Du das nicht lieber mit AutoIt o.ä. machen. Batch finde ich kompliziert für sowas. Ach ja: Windows? Gruss Chregu
Ich habe gerade kein Windows vor mir um zu testen aber aus dem Gedächtnis müsste das etwa so gehen: set heute=%date:~0,2%.%date:~3,2%.%date:~6,4% date = %heute%
JJ schrieb: > Ich habe gerade kein Windows vor mir um zu testen aber aus dem > Gedächtnis müsste das etwa so gehen: > > set heute=%date:~0,2%.%date:~3,2%.%date:~6,4% > > date = %heute% Nein, so kann man das Systemdatum nicht setzen. So geht es bei mir, benötigt allerdings Administrator-Rechte.
1 | @echo off |
2 | setlocal |
3 | |
4 | set "fakeDate=24.12.2019" |
5 | |
6 | set "oldDate=%date%" |
7 | echo.%fakeDate%|date |
8 | |
9 | c:\testdir\test.exe |
10 | |
11 | echo.%oldDate%|date |
>> >> date = %heute% > > Nein, so kann man das Systemdatum nicht setzen. Oh, geht doch. Sorry. Wieder was gelernt. Dann also auch so:
1 | @echo off |
2 | setlocal |
3 | |
4 | set "fakeDate=24.12.2019" |
5 | |
6 | set "oldDate=%date%" |
7 | date = %fakeDate% |
8 | c:\testdir\test.exe |
9 | date = %oldDate% |
Sascha R. schrieb: > Oh, geht doch. Sorry. Wieder was gelernt. Dann also auch so: > @echo off > setlocal > > set "fakeDate=24.12.2019" > > set "oldDate=%date%" > date = %fakeDate% > c:\testdir\test.exe > date = %oldDate% Dabei sollte man aber die Zeit herausfiltern, sonst wird die Uhr auch zurückgestellt. Edit zu oben: %date:~0,10% müsste das ganze Datum ausgeben. Das Zusammensetzen mit den Punkten ist nicht notwendig.
JJ schrieb: > set heute=%date:~0,2%.%date:~3,2%.%date:~6,4% > > date = %heute% Vielen Dank für den Hinweis, aber es hatte nicht geklappt. Sascha R. schrieb: > So geht es bei mir, benötigt allerdings Administrator-Rechte. > @echo off > setlocal > > set "fakeDate=24.12.2019" > > set "oldDate=%date%" > echo.%fakeDate%|date > > c:\testdir\test.exe > > echo.%oldDate%|date SUPER !!! Läuft so, wie ich wollte. Allerherzlichen Dank, Sascha, klappt prima. ? Tschüss Uwe
Oder gibt date unter Windows nur das Datum und nicht auch die Zeit zurück?
1 | echo %date% |
gibt nur das Datum aus, es gibt noch
1 | echo %time% |
für die Uhrzeit. Das sind übrigens keine richtigen Variablen. Man kann sie mit set setzen, aber das überschreibt deren Eigenschaft, stets die aktuelle Zeit darzustellen. Und die Systemzeit wird durch Setzen mit set auch nicht beeinflusst.
1 | date = ... |
dagegen ist der Aufruf des Kommandos "date" mit entsprechenden Argumenten. Ein Hinweis noch: das Format von %date% und auch das des date-Kommandos ist abhängig von der Systemeinstellung. Wenn man "24.12.2019" verwenden will, geht das nur mit den entsprechenden Regional-Einstellungen. Das Skript ist also nicht weltweit verwendbar.
Uwe schrieb: > ein Kinderspiel Ein Backup vorher kann nützlich sein. Man sollte mit diesen Experimenten vorsichtig sein. Ein falsches Dateidatum kann auch viel Ärger zur Folge haben z.B. auch bei Zertifikaten.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.