roberttischler
Goto Top

Installationsbatchdatei für die Verwendung auf CD anpassen

Hallo

Ich will eine von mir angepasste Installationdatein per Batch installieren.
Hier dei Befehls zeile
msiexec /i F:\BlaBla.msi /qn /L* %systemroot%\Temp\Bla.log
Installdir=C:\Bal CFGFILE=F:\Install.cfg


Laufwerk F ist jetzt eine Festpaltte nun will ich aber das so anpassen das es auch von einem CD laufwerk Funktioniert wo ja der Laufwerksbuchstabe nicht bekannt ist.

MFG

Content-Key: 32177

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

Printed on: April 20, 2024 at 02:04 o'clock

Member: scriptkiddy
scriptkiddy May 10, 2006, updated at Oct 18, 2012 at 15:56:52 (UTC)
Goto Top
Hm Die Forensuche benutzen.... ich habe dort

CD- ROM laufwerk in BatchDatei

gefunden.

Denke da steht alles face-big-smile


Grüße Scriptkiddy
Member: RobertTischler
RobertTischler May 10, 2006 at 18:47:40 (UTC)
Goto Top
Ok bin ich in meine eigene Falle getreten. erst mal in Forum suchen

Das Script ist ja nicht schlächt aber wie über gebe ich den ermitelten Laufwerksbuchtstaben in die befehlszeile?
Member: Biber
Biber May 10, 2006 at 21:13:41 (UTC)
Goto Top
Moin Robert,
ich würde eine andere Strategie wählen, nämlich die Pfade der Installationsdatei relativ zum Verzeichnis des zuerst aufgerufenen Batches referenzieren.
Wie auch schon diverse Male hier im Forum beschrieben, kannst Du im Batch den "Standort" des Batches ermitteln mit der erweiterten Parametervariablen %~dp0
::--irgendein.bat
::Installationsvoraussetzung: BlaBla.msi muss im selben Verzeichnis liegen wie der Batch
@echo off
If not exist "%~dp0\BlaBla.msi" echo BlaBla.msi nicht gefunden && goto :eof  
msiexec /i "%~dp0\BlaBla.msi" /qn /L* %systemroot%\Temp\Bla.log  
Installdir=C:\Bal CFGFILE="%~dp0\Install.cfg"  
::--irgendein.bat
Gruß
Biber
P.S. Für die Schlauberger....
Ja, ich weiß, dass die Variable %~dp0 bereits einen abschließenden Backslash enthält.
Und ich daher "%~dp0BlaBla" statt "%~dp0\BlaBla" schreiben müsste.
Aber erstens ist es dann schlechter lesbar, zweitens halte ich das schlicht für einen weiteren M$-Bug und drittens kenne ich ja noch mehr von denen.
Zum Beispiel den, dass ein "if exist c:\\windows" genauso klappt wie ein "if exist c:\windows".
Von daher... ich schrieb den obigen Buggy-Schnipsel sehenden Auges. face-wink
P.P.S. Ich bitte als Halb-Mod in diesem Bereich höflichst um eine angemessene Sorgfalt bei der Erstellung von Beiträgen.
Ich nehme mir auch Zeit bei der Beschäftigung mit Euren Fragen - mindestens genau so viel Zeit erwarte ich von Euch auch bei der Frageformulierung.
Member: scriptkiddy
scriptkiddy May 11, 2006 at 13:30:52 (UTC)
Goto Top
Also Hier nochmal den Codeschnipsel von Biber den er Jetzt angepasst hat und jetzt auch funktioniert face-wink
::-------snipp BatCd.bat 
@echo off & setlocal
Set "vbssnippet=%temp%\%random%.vbs"  
 >%vbssnippet% echo Set WSHShell = WScript.CreateObject("WScript.Shell")  
>>%vbssnippet% echo For Each d in CreateObject("Scripting.FileSystemObject").Drives  
>>%vbssnippet% echo if d.Drivetype=4 then wScript.Echo d.Driveletter
>>%vbssnippet% echo Next 
For /F %%i in ('cscript //nologo %vbssnippet%') Do set "cdrom=%%i"  
del %vbssnippet%
if [%CDROM%]== (ECHO Kein CDROM gefunden!) else Echo CDROM ist %CDROM%:
:: -----snapp BatCd.bat
soweit ich das überblicke solltest du dann einfach nur noch die IF blablabla zeile weglöschen und dann die variabel %CDROM% an stelle des Laufwersbuchstaben in dein Script setzten

Also Sprich:
::-------snipp BatCd.bat 
@echo off & setlocal
Set "vbssnippet=%temp%\%random%.vbs"  
 >%vbssnippet% echo Set WSHShell = WScript.CreateObject("WScript.Shell")  
>>%vbssnippet% echo For Each d in CreateObject("Scripting.FileSystemObject").Drives  
>>%vbssnippet% echo if d.Drivetype=4 then wScript.Echo d.Driveletter
>>%vbssnippet% echo Next 
For /F %%i in ('cscript //nologo %vbssnippet%') Do set "cdrom=%%i"  
del %vbssnippet%
:: -----snapp BatCd.bat

msiexec /i %CDROM%:\BlaBla.msi /qn /L* %systemroot%\Temp\Bla.log
Installdir=C:\Bal CFGFILE=%CDROM%:\Install.cfg
Allerdings sehe ich da noch das Laufwerk C:\ ist es dort nicht das selbe Problem dieser Buchstabe ist ja auch nicht fest vergeben bei mir ist meine Hauptfestplatte beispielsweise D:\ also würde dein Script dann ja auch nicht funktionieren zumindest nicht bei der installdir
%systemroot% geht ja face-wink

Grüße Scriptkiddy