2hard4you
Goto Top

Windows Scripting - alle bereitgestellten .msi - Files in einem Verzeichnis installieren (nacheinander)

bereitgestellter Share - dort sind .msi - Files in wechselnder Anzahl - die sollten gern alle auf nen Rutsch installiert werden

Moin

Für meinen privaten Zoo (hat also weder Eile noch isses kritisch) suche ich solch ein Script, was ich auch dann in dem Share ablegen würde - was einfach die MSI`s *durchnuckelt* und installiert....

Danke!

24

(bin leider kein Coder) ^^

Content-ID: 126178

Url: https://administrator.de/forum/windows-scripting-alle-bereitgestellten-msi-files-in-einem-verzeichnis-installieren-nacheinander-126178.html

Ausgedruckt am: 24.12.2024 um 19:12 Uhr

DerWoWusste
DerWoWusste 30.09.2009 um 23:37:04 Uhr
Goto Top
Schau Dir msiexec /? an.
Xaero1982
Xaero1982 01.10.2009 um 07:48:20 Uhr
Goto Top
Ich wirds einfach mit

@echo off

start /wait x:\pfad\datei1.msi
start /wait x:\pfad\datei2.msi
start /wait x:\pfad\datei3.msi
usw.

erledigen
Speichern als *.bat

LG
ps: wait bewirkt, dass der Prozess so lange wartet bis dieser abgeschlossen ist und dann den nächsten aufruft. Verhindert überschneidungen etc.
2hard4you
2hard4you 01.10.2009 um 08:48:39 Uhr
Goto Top
Zitat von @Xaero1982:
Ich wirds einfach mit

> @echo off
> 
> start /wait x:\pfad\datei1.msi
> start /wait x:\pfad\datei2.msi
> start /wait x:\pfad\datei3.msi
> usw.
> 

erledigen
Speichern als *.bat

LG
ps: wait bewirkt, dass der Prozess so lange wartet bis dieser
abgeschlossen ist und dann den nächsten aufruft. Verhindert
überschneidungen etc.

Moin,

danke für Deine Mühe, aber das ist mir bekannt - was ich suche ist, das die Anzahl der MSI variabel ist, so ala

---

für jedes .MSI im Verzeichnis

start /wait ....

---

Gruß

24
Xaero1982
Xaero1982 01.10.2009 um 09:56:11 Uhr
Goto Top
War ja keine Mühe, aber dann solltest du deinem Beitrag ein wenig mehr Inhalt verpassen, denn das geht nun nicht daraus hervor...

Sowas kannst du mit einer for-schleife umsetzen...

cmd> for /?

lg
TuXHunt3R
TuXHunt3R 01.10.2009 um 09:59:34 Uhr
Goto Top
Wie wäre es z.B. so:


Set objShell = WScript.CreateObject("WScript.Shell")  
Set fso = CreateObject("Scripting.FileSystemObject")  

Pfad = "C:\temp"  
Set folder = fso.GetFolder(Pfad)  

For each file In folder.files    
    if lcase(right(file.name, 3)) = lcase("msi") then  
         objShell.exec("%comspec% /c start /wait " & Pfad & "\" & file.name)  
    end if
next

Das Ganze als VBS speichern und mit in der CMD-Shell ausführen (am besten mit cscript).
Ist nicht getestet, sollte aber einigermassen hinhauen.
Xaero1982
Xaero1982 01.10.2009 um 11:08:59 Uhr
Goto Top
Es geht auch mit

@echo off
for /R <PFAD> %%f  in (*.msi) Do Start /wait %%f
(speichern als *.bat)

Wenn du es in der CMD ausführen willst

for /R <PFAD> %f  in (*.msi) Do Start /wait %f

Dazu dürfen die Dateien aber keine Leerzeichen enthalten.

LG

EDIT: Lösung mit Leerzeichen siehe weiter unten!
2hard4you
2hard4you 01.10.2009 um 12:24:29 Uhr
Goto Top
Vielen Dank!


30ZeichenAuffüller30ZeichenAuffüller30ZeichenAuffüller30ZeichenAuffüller
60730
60730 01.10.2009 um 14:40:06 Uhr
Goto Top
Zitat von @2hard4you:
Vielen Dank!


Servus,

ich wäre da sehr vorsichtig...

  • Es gibt ein paar Msi, die wollen partout einen eigenen Ordner haben
  • Manche Software will einen Reboot nach der installation
  • manche Msi Pakete haben einen /silent schalter - einige nicht.
  • hin und wieder muß vorher geprüft werden, ob die Software nicht bereits installiert ist
  • oder ob eine Vor installation von einer anderen Software nötig ist.


Von daher würde ich den Ansatz mit der Schleife nur als Ansatz und nicht als Lösung sehen.

"Java" wäre zum Bleistift ein msi, dass noch andere Dateien in "seinem" root hat und deswegen einen "eigenen" Ordner braucht.

Gruß
Xaero1982
Xaero1982 01.10.2009 um 15:08:07 Uhr
Goto Top
@Timo: Du Pessimist *g*

LG *Zeichenfüller*
bastla
bastla 01.10.2009 um 17:14:38 Uhr
Goto Top
@Xaero1982
Dazu dürfen die Dateien aber keine Leerzeichen enthalten.
... es sei denn, Du formulierst das (zusammen mit einem dezenten Hinweis) zB so:
for /R <PFAD> %%f in (*.msi) Do Start "Installiere %%~f" /wait %%f
Grüße
bastla

[Edit] Am Ende reicht auch ein %%f - wohl doch nicht face-sad [/Edit]
Xaero1982
Xaero1982 01.10.2009 um 21:46:45 Uhr
Goto Top
Hi Bastla ... hab das mal getestet und es geht nicht face-smile

Er findet die Datei dann nicht...

lg
bastla
bastla 01.10.2009 um 21:54:04 Uhr
Goto Top
Hallo Xaero1982!

OK - dann doch die Sicherheitsvariante:
 for /R <PFAD> %%f in (*.msi) Do Start "Installiere %%~f" /wait "%%~f"
Grüße
bastla
Xaero1982
Xaero1982 02.10.2009 um 07:43:53 Uhr
Goto Top
Cool face-smile

Nun gehts face-smile

LG