[gelöst]Exe Parameter funktionieren nicht in WinBatch

TheAngryCube
Beiträge: 65
Registriert: 23 Mai 2012, 11:01

[gelöst]Exe Parameter funktionieren nicht in WinBatch

Beitrag von TheAngryCube »

Moin moin,

ich habe ein interessantes Problem beim Installieren von Firefox.

Setzen der Variablen:
Set $ExeFile$ = $TEMP$+"\setup.exe"
Set $ExeFileArgs$ = "/INI=configuration.ini"
Set $InstallCmd$ = $ExeFile$ + " " + $ExeFileArgs$

WinBatch-Aufruf:
[WinBatch_install]
$InstallCmd$

Führt in winst zu: Call "C:\Users\ADMINI~1\AppData\Local\Temp\Mozilla\setup.exe /INI=configuration.ini"

Setup-Prozess wird gestartet, es passiert aber nichts. Vermutung: der Schalter /INI wird nicht gelesen.
Führe ich den o.g. Call in cmd.exe per Hand aus, läuft er ohne Probleme durch.

Habe schon alles mögliche getestet. Führe ich die setup.exe mit -ms aus, funktioniert es auch mit winst. Ich würde aber gerne die ini einlesen.

Jemand eine Idee was das sein könnte?


LÖSUNG:
Der Pfad zur INI-Datei muss explizit angeben werden, da WinBatch standardmäßig c:\windows\system32 als Arbeitsverzeichnis nutzt

Code: Alles auswählen

Setzen der Variablen:
Set $ExeFile$ = '"' + $TEMP$ + '\setup.exe"'				
Set $ExeFileArgs$ = '/INI="' + $TEMP$ + '\configuration.ini"'
Set $InstallCmd$ = $ExeFile$ + " " + $ExeFileArgs$

WinBatch-Aufruf:
[WinBatch_install]
$InstallCmd$
MfG
Jan
Zuletzt geändert von TheAngryCube am 30 Mai 2012, 11:25, insgesamt 1-mal geändert.
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3327
Registriert: 04 Jun 2008, 14:27

Re: Exe Parameter funktionieren nicht in WinBatch

Beitrag von d.oertel »

Hi,

allgemeine Empfehlung:

Pfade zu einer Datei immer in Anführungszeichen:

Code: Alles auswählen

"C:\Users\ADMINI~1\AppData\Local\Temp\Mozilla\setup.exe"
gruss
d.oertel


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


TheAngryCube
Beiträge: 65
Registriert: 23 Mai 2012, 11:01

Re: Exe Parameter funktionieren nicht in WinBatch

Beitrag von TheAngryCube »

Wie soll ich denn in den String Anführungszeichen reinbekommen? Hab ich auch sonst in noch keinem Script gesehen?
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3327
Registriert: 04 Jun 2008, 14:27

Re: Exe Parameter funktionieren nicht in WinBatch

Beitrag von d.oertel »

HI,

opsi-winst-Handbuch:
http://download.uib.de/opsi4.0/doc/html ... ing-nested

Code: Alles auswählen

Set $ExeFile$ = '"'+$TEMP$+'\setup.exe"'
Set $ExeFileArgs$ = "/INI=configuration.ini"
Set $InstallCmd$ = $ExeFile$ + " " + $ExeFileArgs$

WinBatch-Aufruf:
[WinBatch_install]
$InstallCmd$
gruss
d.oertel


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


TheAngryCube
Beiträge: 65
Registriert: 23 Mai 2012, 11:01

Re: Exe Parameter funktionieren nicht in WinBatch

Beitrag von TheAngryCube »

Folgender Fehler:

""C:\Users\ADMINI~1\AppData\Local\Temp\Mozilla\setup.exe"": File Error 123 (Die Syntax f?r den Dateinamen, Verzeichnisnamen oder die Datentr?gerbezeichnung ist falsch.

Wenn ich das richtig sehe, dann setzt WinBatch den Aufruf bereits in Anführungszeichen...

MfG
Jan
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3327
Registriert: 04 Jun 2008, 14:27

Re: Exe Parameter funktionieren nicht in WinBatch

Beitrag von d.oertel »

Hi,

probiers doch mal mit einem 'anständigen' Pfad ohne verkürzungen wie "\ADMINI~1" ...

z.B.
"c:\tmp"

Geht es dann ?

gruss
d.oertel


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


TheAngryCube
Beiträge: 65
Registriert: 23 Mai 2012, 11:01

Re: Exe Parameter funktionieren nicht in WinBatch

Beitrag von TheAngryCube »

Nein, der gleiche Fehler. Der Prozess setup.exe wird gestartet, jedoch ohne die den Parameter /INI, so dass der Prozess im Hintergrund auf meine Eingabe wartet...

Hab nebenbei mal mit der Deinstallationroutine weitergemacht und ein ähnlichen Fehler gefunden:

Code: Alles auswählen

Set $InstallDir$ = getRegistryStringValue32 ("[HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox\"+$MozillaVersion$+"\Main] Install Directory")
Set $ExeFile$ = "helper.exe"				
Set $ExeFileArgs$ = "-ms"
Set $UninstallCmd$ = '"'+$InstallDir$+'\uninstall\'+$ExeFile$ + ' ' + $ExeFileArgs$+'"'

if not ( FileExists ($InstallDir$+"\uninstall\"+$ExeFile$) )
	LogError $ExeFile$+" konnte nicht gefunden werden"
	isFatalError
endif

killtask "firefox.exe"
WinBatch_uninstall

[WinBatch_uninstall]
$UninstallCmd$
Hab das extra mal mit den Anführungszeichen gebaut wie Sie es empfohlen haben. Es funktioniert auch wenn ich einfach den Aufruf $UninstallCmd$ in "$UninstallCmd$" ändere.
Jetzt kommt folgende Ausgabe:

[5] [23.05.2012 15:55:43] If
[6] [23.05.2012 15:55:43] Starting query if file exist ...
[5] [23.05.2012 15:55:43] FileExists ($InstallDir$+"\uninstall\"+$ExeFile$) <<< result true
[5] [23.05.2012 15:55:43] not ( FileExists ($InstallDir$+"\uninstall\"+$ExeFile$) ) <<< result false
[5] [23.05.2012 15:55:43] Then
[5] [23.05.2012 15:55:43] EndIf
[6] [23.05.2012 15:55:43] Nothing to stop, no instances of "firefox.exe" found
[5] [23.05.2012 15:55:43]
[5] [23.05.2012 15:55:43] Execution of WinBatch_uninstall
[4] [23.05.2012 15:55:43] Warning: file not found :C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe -ms -retrying
[4] [23.05.2012 15:55:44] Warning: file not found :C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe -ms -retrying
[4] [23.05.2012 15:55:44] Warning: file not found :C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe -ms -retrying
[4] [23.05.2012 15:55:44] Warning: file not found :C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe -ms -retrying
[4] [23.05.2012 15:55:45] Warning: file not found :C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe -ms -retrying
[4] [23.05.2012 15:55:45] Warning: file not found :C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe -ms -retrying
[4] [23.05.2012 15:55:46] Warning: file not found :C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe -ms -retrying
[4] [23.05.2012 15:55:46] Warning: file not found :C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe -ms -retrying
[4] [23.05.2012 15:55:46] Warning: file not found :C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe -ms -retrying
[4] [23.05.2012 15:55:47] Warning: file not found :C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe -ms -retrying
[4] [23.05.2012 15:55:47] Warning: file not found :C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe -ms - giving up
[6] [23.05.2012 15:55:47] Call ""C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe -ms""
[6] [23.05.2012 15:55:47] Waiting until the called process is finished
[6] [23.05.2012 15:55:47]
[6] [23.05.2012 15:55:47] Section ending since next line is starting with "["

Obwohl er den richtigen Pfad bekommt und die helper.exe auch da ist, meldet er dass die Datei nicht gefunden wurde. Habe schon alle möglichen Schreibweisen ausprobiert. Stehe echt auf dem Schlauch...

MfG
Jan
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3327
Registriert: 04 Jun 2008, 14:27

Re: Exe Parameter funktionieren nicht in WinBatch

Beitrag von d.oertel »

Hi,

naja - die Datei
"C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe -ms"
existiert halt nicht.
Was existiert ist
"C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe"

der Aufruf muss also sein:
"C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe" -ms

Wenn der string nicht in Anführungszeichen steht, dann ist das erste Leerzeichen das ende des Programmnamens und der Rest sind Parameter.
Setht das in Anführungszeichen ist alles in Anführungszeichen der Programmname.

gruß
d.oertel


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


TheAngryCube
Beiträge: 65
Registriert: 23 Mai 2012, 11:01

Re: Exe Parameter funktionieren nicht in WinBatch

Beitrag von TheAngryCube »

Ok, das sehe ich ein.

[EDIT]

Code: Alles auswählen

Set $UninstallCmd$ = '"' + $InstallDir$ + '\uninstall\' + $ExeFile$ + '"' + ' ' + $ExeFileArgs$
Yo so läuft's
[/EDIT]

Btw, was ich gestern noch vergessen hatte. Ich hatte zwischenzeitlich die Installation mal mit DosInAnIcon statt mit WinBatch ausgeführt. Da läuft der Aufruf mit /INI ohne Probleme

[EDIT]
So habe jetzt den Auffruf bei der Installation mal genauso gestrickt:

Code: Alles auswählen

Set $InstallCmd$ = '"' + $TEMP$ + '\' + $ExeFile$ + '"' + ' ' + $ExeFileArgs$
Leider bleibt der Fehler aber bestehen. Der Aufruf findet korrekt statt :
[6] [24.05.2012 09:06:32] Call ""c:\tmp\Mozilla\setup.exe" /INI=configuration.ini"

Der Prozess startet, bleibt dann aber stehen. Keine Ahnung was das noch sein soll. Ich habe auch schön öfter Parameter mit "/" übergeben. Lief immer ohne Probleme
[/EDIT]
TheAngryCube
Beiträge: 65
Registriert: 23 Mai 2012, 11:01

Re: Exe Parameter funktionieren nicht in WinBatch

Beitrag von TheAngryCube »

Hat noch jemand eine Idee oder ein ähnliches Problem?
Antworten