Seite 1 von 2

[gelöst]Exe Parameter funktionieren nicht in WinBatch

Verfasst: 23 Mai 2012, 11:09
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

Re: Exe Parameter funktionieren nicht in WinBatch

Verfasst: 23 Mai 2012, 11:59
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

Re: Exe Parameter funktionieren nicht in WinBatch

Verfasst: 23 Mai 2012, 12:50
von TheAngryCube
Wie soll ich denn in den String Anführungszeichen reinbekommen? Hab ich auch sonst in noch keinem Script gesehen?

Re: Exe Parameter funktionieren nicht in WinBatch

Verfasst: 23 Mai 2012, 14:07
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

Re: Exe Parameter funktionieren nicht in WinBatch

Verfasst: 23 Mai 2012, 14:50
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

Re: Exe Parameter funktionieren nicht in WinBatch

Verfasst: 23 Mai 2012, 15:31
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

Re: Exe Parameter funktionieren nicht in WinBatch

Verfasst: 23 Mai 2012, 16:14
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

Re: Exe Parameter funktionieren nicht in WinBatch

Verfasst: 23 Mai 2012, 18:53
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

Re: Exe Parameter funktionieren nicht in WinBatch

Verfasst: 24 Mai 2012, 08:39
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]

Re: Exe Parameter funktionieren nicht in WinBatch

Verfasst: 24 Mai 2012, 13:27
von TheAngryCube
Hat noch jemand eine Idee oder ein ähnliches Problem?