Bekomme einfache Batch-Datei nicht hin.

Gast #6107064
Lesenswert?

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
#6107125
Lesenswert?

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
Gast #6107136
Lesenswert?

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.
Gast #6107138
Lesenswert?

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
#6107154
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren