proliant
Goto Top

Variabler Laufwerksbuchstabe in .bat Datei einfügen

Hallo liebe User

Ich habe eine bootbare CD für Biosupdates. ich möchte über eine Batchdatei im root der CD ein Biosupdate starten, welches sich im Unterverzeichniss \BIOS\*\Update.exe befindet. Mein Problem ist jetzt das der Laufwerksbuchstabe des CD-Laufwerks, auf Grund der Anzahl der Partitionen, von Gerät zu Gerät unterschiedlich ist. mit welchem Befehl kann ich dieses umgehen?

Gruss
Proliant

Content-ID: 85126

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

Ausgedruckt am: 25.11.2024 um 05:11 Uhr

bastla
bastla 09.04.2008 um 20:20:43 Uhr
Goto Top
Hallo Proliant und willkommen im Forum!

Der Laufwerksbuchstabe lässt sich in Batch mit %~d0 ermitteln - der Aufruf der "Update.exe" könnte daher so aussehen:
%~d0\BIOS\*\Update.exe
wobei mir allerdings der Stern nicht wirklich klar ist ...

Grüße
bastla
60730
60730 09.04.2008 um 20:33:55 Uhr
Goto Top
Hi,

helf uns doch mal auf die Sprünge...

die CD ist Bootbar und bootet welches OS?
Wenn du mit der CD bootest, sollte das Laufwerk A: oder c:\ sein - aber das willst du bestimmt nicht hören *duck*

if exist a:\BIOS\Update.exe>nul start a:\BIOS\Update.exe
if exist b:\BIOS\Update.exe>nul start b:\BIOS\Update.exe

usw.

Aber
start BIOS\Update.exe
sollte auch gehen. - den Laufwerksbuchstaben brauchst du doch nicht, wenn die Batch im gleichen "Root" wie der Ordner Bios liegt....


@ Bastla - yupp den Stern hab ich auch mal ignoriert.
MIST 13 minuten zu spät *lach* und dann noch viel zu kompliziert....
bastla
bastla 09.04.2008 um 21:59:36 Uhr
Goto Top
@timobeil
... und dann noch viel zu kompliziert....
Finde ich nicht - einerseits ist es doch gut, ein Thema unter verschiedenen Aspekten zu betrachten, andererseits habe ich's mir ja vermutlich ohnehin zu leicht gemacht und cmd.exe (und nicht command.com) vorausgesetzt ...

Grüße
bastla
Proliant
Proliant 10.04.2008 um 06:38:51 Uhr
Goto Top
Vielen Dank für die schnellen Antworten.

start BIOS\****\Update.exe
So funktioniert es Wunderbar unter Windows aber leider nich unter DOS.
Da ich ja eh erst auf das CD-Laufwerk wechseln muss um die Batch auszuführen ist es egal welches Verzeichnis das Laufwerk hat.

if exist a:\BIOS\Update.exe>nul start a:\BIOS\Update.exe
if exist b:\BIOS\Update.exe>nul start b:\BIOS\Update.exe

Ich versuche es mal mit dieser Variante und gebe dann bescheid.

wobei mir allerdings der Stern nicht wirklich klar ist ...
Der Stern steht für ein weiteres Verzeichnis.

helf uns doch mal auf die Sprünge...

die CD ist Bootbar und bootet welches OS?
Wenn du mit der CD bootest, sollte das
Laufwerk A: oder c:\ sein - aber das willst
du bestimmt nicht hören *duck*
Die CD habe ich mit einer WinME Startdiskette erstellt und wenn's gebootet ist steht's auf Laufwerk A:
Proliant
Proliant 10.04.2008 um 18:57:23 Uhr
Goto Top
Folgend der Code der .bat Datei die im Root der CD liegt.

f exist d:\BIOS\MS6734\go.bat>nul start d:\BIOS\MS6734\go.bat
if exist e:\BIOS\MS6734\go.bat>nul start e:\BIOS\MS6734\go.bat
if exist f:\BIOS\MS6734\go.bat>nul start f:\BIOS\MS6734\go.bat
if exist g:\BIOS\MS6734\go.bat>nul start g:\BIOS\MS6734\go.bat

Habe es so probiert, bekomme aber immer den Fehler
"Befehl oder Dateinahme nicht vorhanden"

Gebe ich aber den Befehl
d:\BIOS\MS6734\go.bat
manuell ein so fuktioniert es.
Was kann ich tun?
60730
60730 10.04.2008 um 19:15:10 Uhr
Goto Top
Hi,

dann mal ohne ">Nul" probieren....
> if exist d:\BIOS\MS6734\go.bat start d:\BIOS\MS6734\go.bat
> if exist e:\BIOS\MS6734\go.bat start e:\BIOS\MS6734\go.bat
> if exist f:\BIOS\MS6734\go.bat start f:\BIOS\MS6734\go.bat
> if exist g:\BIOS\MS6734\go.bat start g:\BIOS\MS6734\go.bat
> 
Proliant
Proliant 10.04.2008 um 19:27:04 Uhr
Goto Top
if exist d:\BIOS\MS6734\go.bat start d:\BIOS\MS6734\go.bat
if exist e:\BIOS\MS6734\go.bat start e:\BIOS\MS6734\go.bat
if exist f:\BIOS\MS6734\go.bat start f:\BIOS\MS6734\go.bat
if exist g:\BIOS\MS6734\go.bat start g:\BIOS\MS6734\go.bat

geht leider auch nicht face-sad
Biber
Biber 10.04.2008 um 19:36:56 Uhr
Goto Top
Moin Proliant,

lass doch den "Start"-Befehl weg.

Das reduziert den Batch auf
@For %%i in ( d e f g) do if exist %%i:\BIOS\MS6734\go.bat %%i:\BIOS\MS6734\go.bat

Grüße
Biber
Proliant
Proliant 10.04.2008 um 19:48:50 Uhr
Goto Top
@For %%i in ( d e f g) do if exist %%i:\BIOS\MS6734\go.bat %%i:\BIOS\MS6734\go.bat
> 

Sprach der Herr und es funktionierte! *freu*

Danke an euch alle für eure Mühe.