setup.ini .msi finden und installieren.

polarennnn
Beiträge: 6
Registriert: 17 Mai 2018, 16:27

setup.ini .msi finden und installieren.

Beitragvon polarennnn » 25 Mai 2018, 12:16

Hallo zusammen,

ich habe die Aufgabe bekommen unsere Setup.ini's zu optimieren. Es ergibt sich folgendes Problem. Es gibt etliche Produkte und dazu auch etliche setup Dateien. In den aktuellen setup.inis wird die setup datei mit namen angegeben und ausgeführt. Ändert sich allerdings der Name der setup Datei muss diese per hand editiert werden.

Code: Alles auswählen

Set $Inst_Prg64$ = "produktsetup_1.msi"

zu z.B

Code: Alles auswählen

Set $Inst_Prg64$ = "produktsetup_1_1231212312_bla.msi"


Meine Frage ist nun:
Ist es möglich in der setup.ini zu sagen: such nach einer .msi Datei, wenn vorhanden, installieren?

Befinden sich mehrere .msi Dateien in einem Order, möchte ich das Setup abbrechen.

Ich bedanke mich schon einmal im voraus für Infos.

bernd670
Beiträge: 79
Registriert: 16 Mär 2018, 10:44

Re: setup.ini .msi finden und installieren.

Beitragvon bernd670 » 25 Mai 2018, 15:07

Hallo,

du könntest dir eine StringList (z.B. $msiList$) definieren und mit

Code: Alles auswählen

Set $msiList$ = ShellCall('if exist "<pfad>\*.msi" dir /b /tc "<pfad>\*.msi"')
die Liste mit den MSI-Dateien befüllen, wobei <pfad> den Pfad angibt in dem die MSI-Dateien liegen. Mit count($msiList$) kannst du prüfen wieviele MSI-Dateien in der Liste enthalten sind.

Gruß
Bernd
MfG
Bernd

polarennnn
Beiträge: 6
Registriert: 17 Mai 2018, 16:27

Re: setup.ini .msi finden und installieren.

Beitragvon polarennnn » 28 Jun 2018, 15:09

Hallo,

entschuldige bitte die sehr späte Antwort. Ich werde es ausprobieren. :)

Grüße

Benutzeravatar
SisterOfMercy
Beiträge: 917
Registriert: 22 Jun 2012, 19:18

Re: setup.ini .msi finden und installieren.

Beitragvon SisterOfMercy » 28 Jun 2018, 17:14

Why not rename your msi files?

Example, 7zip:
7z-x64.msi
7z-x86.msi
instead of:
7z1805.msi
7z1805-x64.msi

New version? overwrite the files with the new version, you don't have to change the script now.
Bitte schreiben Sie Deutsch, when I'm responding in the German-speaking part of the forum!

polarennnn
Beiträge: 6
Registriert: 17 Mai 2018, 16:27

Re: setup.ini .msi finden und installieren.

Beitragvon polarennnn » 19 Jul 2018, 12:26

bernd670 hat geschrieben:Hallo,

du könntest dir eine StringList (z.B. $msiList$) definieren und mit

Code: Alles auswählen

Set $msiList$ = ShellCall('if exist "<pfad>\*.msi" dir /b /tc "<pfad>\*.msi"')
die Liste mit den MSI-Dateien befüllen, wobei <pfad> den Pfad angibt in dem die MSI-Dateien liegen. Mit count($msiList$) kannst du prüfen wieviele MSI-Dateien in der Liste enthalten sind.

Gruß
Bernd



Muss man, den Dateinamen der .MSI angeben?

Code: Alles auswählen

Set $Inst_Prg64$ = "*.msi")
[DosBatch_install_64]
@echo off
attrib -r "$LogDir$"
$Uninst_Prg$ /i %ScriptPath%\$Inst_Prg64$ $Inst_Cmd$


Immer den Error, dass keine Datei gefunden werden kann.

polarennnn
Beiträge: 6
Registriert: 17 Mai 2018, 16:27

Re: setup.ini .msi finden und installieren.

Beitragvon polarennnn » 19 Jul 2018, 12:29

SisterOfMercy hat geschrieben:Why not rename your msi files?

Example, 7zip:
7z-x64.msi
7z-x86.msi
instead of:
7z1805.msi
7z1805-x64.msi

New version? overwrite the files with the new version, you don't have to change the script now.


Yes thank you, but it doesnt work like that. Because of the mass of programms. I want the script to install any .msi file in the scriptpatch folder.
My current problem is, that it cant find the installation with this:

Code: Alles auswählen

Set $Inst_Prg64$ = "*.msi")

Benutzeravatar
GEI
Beiträge: 209
Registriert: 12 Feb 2010, 13:00
Wohnort: Braunschweig
Kontaktdaten:

Re: setup.ini .msi finden und installieren.

Beitragvon GEI » 20 Jul 2018, 07:34

polarennnn hat geschrieben:In den aktuellen setup.inis wird die setup datei mit namen angegeben und ausgeführt. Ändert sich allerdings der Name der setup Datei muss diese per hand editiert werden.


so machen wir das hier:

Code: Alles auswählen

Set $ProductVersion$    = takeString(1, splitString("%installingProdVersion%","-"))
Set $SetupVersion$      = takestring(0, splitString("%installingProdVersion%","-"))
...
Set $SetupFile$         = "TeamViewer_" + $SetupVersion$ + "_Setup_de.exe"

Damit braucht man beim aktualisieren des Paketes die Versionsnummer nur noch in der OPSI/control zu ändern...
Gegebenenfalls muss man noch mit String-Operationen noch an den konkreten Dateinamen anpassen, wie zum Beispiel:

Code: Alles auswählen

; ----- OPSI/control ----
[Product]
type: localboot
id: adobeconnect-desktopapp
name: AdobeConnect StandAlone
description: Adobe Connect application
advice:
version: 11.9.982.478
...
; ------ CLIENT_DATA/setup.opsiscript ------
...
; Filename:  Connect982_478.msi
Set $SetupFile$         = "Connect" + takeString(2, splitString($SetupVersion$,".")) + "_" + takeString(3, splitString($SetupVersion$,".")) + ".msi"
Georg-Eckert-Institut - Leibniz-Institut für internationale Schulbuchforschung (GEI)
---
'opsi4instituts' = Communityprojekt für wissenschaftliche Einrichtungen
offenes Repository, Update-Notifier
http://www.gei.de/o4i - https://opsi.wzb.eu/wiki

polarennnn
Beiträge: 6
Registriert: 17 Mai 2018, 16:27

Re: setup.ini .msi finden und installieren.

Beitragvon polarennnn » 20 Jul 2018, 09:52

GEI hat geschrieben:
polarennnn hat geschrieben:In den aktuellen setup.inis wird die setup datei mit namen angegeben und ausgeführt. Ändert sich allerdings der Name der setup Datei muss diese per hand editiert werden.


so machen wir das hier:

Code: Alles auswählen

Set $ProductVersion$    = takeString(1, splitString("%installingProdVersion%","-"))
Set $SetupVersion$      = takestring(0, splitString("%installingProdVersion%","-"))
...
Set $SetupFile$         = "TeamViewer_" + $SetupVersion$ + "_Setup_de.exe"

Damit braucht man beim aktualisieren des Paketes die Versionsnummer nur noch in der OPSI/control zu ändern...
Gegebenenfalls muss man noch mit String-Operationen noch an den konkreten Dateinamen anpassen, wie zum Beispiel:

Code: Alles auswählen

; ----- OPSI/control ----
[Product]
type: localboot
id: adobeconnect-desktopapp
name: AdobeConnect StandAlone
description: Adobe Connect application
advice:
version: 11.9.982.478
...
; ------ CLIENT_DATA/setup.opsiscript ------
...
; Filename:  Connect982_478.msi
Set $SetupFile$         = "Connect" + takeString(2, splitString($SetupVersion$,".")) + "_" + takeString(3, splitString($SetupVersion$,".")) + ".msi"



Hallo, danke für die Antwort. Ich habe es ähnlich gelöst.

Code: Alles auswählen

Set $msiList$ = ShellCall('if exist "%ScriptPath%\*.msi" dir /b /tc "%ScriptPath%\*.msi"')
Set $Inst_Prg64$ = takestring(0, $msiList$)
 

So nimmt er die erste MSI datei die erfindet und installiert sie, wenn er mehrere findet breche ich die Installation mit einem Error ab.

Benutzeravatar
SisterOfMercy
Beiträge: 917
Registriert: 22 Jun 2012, 19:18

Re: setup.ini .msi finden und installieren.

Beitragvon SisterOfMercy » 09 Aug 2018, 23:30

polarennnn hat geschrieben:Yes thank you, but it doesnt work like that. Because of the mass of programms. I want the script to install any .msi file in the scriptpatch folder.
My current problem is, that it cant find the installation with this:

Code: Alles auswählen

Set $Inst_Prg64$ = "*.msi")


Just rename them setup.msi?

Installing all/any msi files in the scriptpath folder seems like something you never would want or need.
Bitte schreiben Sie Deutsch, when I'm responding in the German-speaking part of the forum!

Benutzeravatar
GEI
Beiträge: 209
Registriert: 12 Feb 2010, 13:00
Wohnort: Braunschweig
Kontaktdaten:

Re: setup.ini .msi finden und installieren.

Beitragvon GEI » 10 Aug 2018, 06:01

Just rename them setup.msi?
Installing all/any msi files in the scriptpath folder seems like something you never would want or need.


bei uns werden die Hersteller-Websites (ca.230 Produkte) via Cron gecrawlt und neue Versionen der SetupXYZ.exe automatisch in die CLIENT_DATA/ gedownloadet.
(siehe auch https://opsi.wzb.eu/wiki/index.php/Update-Notify/Public)
Georg-Eckert-Institut - Leibniz-Institut für internationale Schulbuchforschung (GEI)
---
'opsi4instituts' = Communityprojekt für wissenschaftliche Einrichtungen
offenes Repository, Update-Notifier
http://www.gei.de/o4i - https://opsi.wzb.eu/wiki