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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 32177
Url: https://administrator.de/contentid/32177
Ausgedruckt am: 24.11.2024 um 04:11 Uhr
4 Kommentare
Neuester Kommentar
Hm Die Forensuche benutzen.... ich habe dort
CD- ROM laufwerk in BatchDatei
gefunden.
Denke da steht alles
Grüße Scriptkiddy
CD- ROM laufwerk in BatchDatei
gefunden.
Denke da steht alles
Grüße Scriptkiddy
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
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.
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.
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
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.
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.
Also Hier nochmal den Codeschnipsel von Biber den er Jetzt angepasst hat und jetzt auch funktioniert
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:
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
Grüße Scriptkiddy
::-------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
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
%systemroot% geht ja
Grüße Scriptkiddy