Hallo Jochen,
ok dachte ich mir.
- benenne dass von .bat in .cmd um. Die Endung bat stammt aus MS DOS Zeiten
2. das aktuelle Verzeichnis ist beim anklicken das Windows Systemverzeichnis, wenn ich nicht irre.
Scratch that - es stimmt nicht. Zumindest unter Windows 7 ist der aktuelle Order der Script-Ordner.
Also, einfach mal PAUSE an's Ende vom Script, damit man Zeit hat, eventuelle Fehlermeldungen zu lesen.
Scratch that, too. Fehler ist klar.
start C:\Program Files\path\file.exe
sagt dem Computer: Starte das Programm "C:\Program" und übergebe ihm "Files\path\file.exe" als Parameter. Die Leerstelle trennt Programm und Parameter. Du musst Anführungszeichen verwenden.
start "C:\Program Files\path\file.exe"
reicht aber auch nicht, weil der START BEfehl nämlich einen ersten Parameter, der in Anführungszeichen steht, als Fenstertitel für das neue Programm interpretieren will.
So ist's besser:
start "" "C:\Program Files\path\file.exe"
aber immer noch nicht KORREKT, weil man C:\Program Files nicht hartcodiert. Bist Du übrigens ganz sicher, dass es "Program Files" ist und nicht "Program Files (x86)"? Windows treibt da gerne mal neckische Scherze.
Korrekt ist, statt C:\Program Files die Umgebungsvariable PROGRAMFILES zu verwenden.
start "" "%PROGRAMFILES%\path\file.exe"
Muss das Programm mit START gestartet werden? Weil - dann startet es asynchron (d.h. das Batchfile läuft sofort weiter), und ein Wiederherstellen der korrekten Zeit kommt möglicherweise zu früh.
Das aktuelle Datum findest Du in der Umgebungsvariablen DATE. Du speicherst es mit
SET datum=%DATE%
und stellst es mit
DATE %datum%
wieder her.
Aber wie gesagt - das ist so eine Sache mit der Asynchronität. Ggf. musst Du vor die Wiederherstellung einen PAUSE Befehl setzen, dann wartet das Batch darauf, dass jemand die Eingabetaste drückt und macht dann erst weiter.
Rolf
sumpsi - posui - clusi