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-Key: 126178

Url: https://administrator.de/contentid/126178

Printed on: April 23, 2024 at 18:04 o'clock

Member: DerWoWusste
DerWoWusste Sep 30, 2009 at 21:37:04 (UTC)
Goto Top
Schau Dir msiexec /? an.
Member: Xaero1982
Xaero1982 Oct 01, 2009 at 05:48:20 (UTC)
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.
Member: 2hard4you
2hard4you Oct 01, 2009 at 06:48:39 (UTC)
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
Member: Xaero1982
Xaero1982 Oct 01, 2009 at 07:56:11 (UTC)
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
Member: TuXHunt3R
TuXHunt3R Oct 01, 2009 at 07:59:34 (UTC)
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.
Member: Xaero1982
Xaero1982 Oct 01, 2009 at 09:08:59 (UTC)
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!
Member: 2hard4you
2hard4you Oct 01, 2009 at 10:24:29 (UTC)
Goto Top
Vielen Dank!


30ZeichenAuffüller30ZeichenAuffüller30ZeichenAuffüller30ZeichenAuffüller
Mitglied: 60730
60730 Oct 01, 2009 at 12:40:06 (UTC)
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ß
Member: Xaero1982
Xaero1982 Oct 01, 2009 at 13:08:07 (UTC)
Goto Top
@Timo: Du Pessimist *g*

LG *Zeichenfüller*
Member: bastla
bastla Oct 01, 2009 at 15:14:38 (UTC)
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]
Member: Xaero1982
Xaero1982 Oct 01, 2009 at 19:46:45 (UTC)
Goto Top
Hi Bastla ... hab das mal getestet und es geht nicht face-smile

Er findet die Datei dann nicht...

lg
Member: bastla
bastla Oct 01, 2009 at 19:54:04 (UTC)
Goto Top
Hallo Xaero1982!

OK - dann doch die Sicherheitsvariante:
 for /R <PFAD> %%f in (*.msi) Do Start "Installiere %%~f" /wait "%%~f"
Grüße
bastla
Member: Xaero1982
Xaero1982 Oct 02, 2009 at 05:43:53 (UTC)
Goto Top
Cool face-smile

Nun gehts face-smile

LG