[Batch .bat] Programm mit Parametern öffnen

Quidoff

Lieutenant
Registriert
Feb. 2005
Beiträge
897
Hi@all,
ich hab ein so einfaches Problem, dass es schon wieder kompliziert ist. In einer Batch-Datei muss ich ein Programm mit Parametern öffnen. Sowohl den Programm-Namen als auch die Programm-Parameter werden als Parameter an die Batchdatei übergeben.
Ich rufe meine Batch-Datei z.B. so auf:
Code:
mybat.bat "Steam.exe" "-applaunch 70"
Ich will jetzt in meiner Batch-Datei also die Datei "Steam.exe" öffnen und an sie den Parameter "-applaunch 70" (öffnet Half-Life) übergeben.
Ich hab dann einfach den folgenden Code genommen.
Code:
%1 %2
Problem dabei sind die Anführungszeichen. Damit Half-Life geöffnet wird muss ich nämlich
Code:
"Steam.exe" -applaunch 70
ausführen und nicht
Code:
"Steam.exe" "-applaunch 70"
Ich brauch aber die Anführungszeichen für den Parameter, den ich an die Batchdatei übergebe.

Wenn ich die Batch-Datei mit
Code:
mybat.bat "Steam.exe" -applaunch 70
aufrufe, dann kann ich auf '-applaunch 70' nicht mehr mit %2 zugreifen. Wie bekomme ich die Anführungszeichen weg?

//edit
Mist. Kann ein Mod den Titel bitte in "[Batch .bat] Programm mit Parametern öffnen" ändern? Hab zu früh gepostet. Sry.
 
AW: [Batch .bat]

Lass die Anführungszeichen weg und nehme für die 70 %3.

MfG

Arnd
 
AW: [Batch .bat]

Das war jetzt nur ein Beispiel. Ich weiß nicht wie viele Parameter es sein werden. Ein anderes Programm brauch vllt 5 Parameter. Ich will die (wenn möglich) zusammen in einer Variable haben.
 
Also ich habs jetzt so gemacht, dass ich den Befehl "shift" benutze. Es werden nämlich noch mehr Parameter als exe und deren Parameter an mein Script übergeben.

Ich rufe also dann alle Parameter auf:
Code:
%1 %2 %3 %4 %5 %6 %7 %8 %9
Die Parameter der exe sind die letzten Parameter, die an mein Script übergeben werden. Deswegen klappt das.

Gibt es eine Gegenfunktion zu "shift"?
Also dass ich wieder Zugriff auf die Parameter habe, die ich vorher "abgeschnitten" habe.

//edit
Ich hab das Problem jetzt selbst gelöst, indem ich die vorherigen Parameter in einer Variable zwischengespeichert habe. So gehen sie auch bei einem shift-Befehl nicht verloren.

Code:
set DRIVE=%1
shift
set DIRECTORY=%1
shift
set EXE=%1
shift

ECHO # drive -^> %DRIVE%
ECHO #  path -^> %DIRECTORY%
ECHO #   exe -^> %EXE%
IF NOT [%1]==[] ECHO # params -^> %1 %2 %3 %4 %5 %6 %7 %8 %9

ECHO # %DRIVE%
%DRIVE%


ECHO # cd \
cd \


echo # cd %DIRECTORY%
cd %DIRECTORY%

echo # %EXE% %1 %2 %3 %4 %5 %6 %7 %8 %9
%EXE% %1 %2 %3 %4 %5 %6 %7 %8 %9
Half-Life wird jetzt so gestartet.

myscript.bat D: Games\Steam steam -applaunch 70

Thx.
Problem gelöst.
 
Zuletzt bearbeitet:

Ähnliche Themen

Zurück
Oben