SHIFT trennt Kommandozeilenargument mit Wertzuweisung auf
Bekomme die Kommendozeilenargumente bei folgendem Aufruf nicht auseinander:
test.bat "C:\My Folder\out.txt" arg1=5 argx=y
test.bat:
Ist-Output:
Soll-Output:
Kann mir hier bitte jemand helfen?
test.bat "C:\My Folder\out.txt" arg1=5 argx=y
test.bat:
@echo off
:NEXT_CMDLINE_ARG
IF NOT "%~1"=="" (
ECHO %~1
SHIFT
GOTO NEXT_CMDLINE_ARG
)
Ist-Output:
C:\My Folder\out.txt
arg1
5
argx
y
Soll-Output:
C:\My Folder\out.txt
arg1=5
argx=y
Kann mir hier bitte jemand helfen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 116690
Url: https://administrator.de/forum/shift-trennt-kommandozeilenargument-mit-wertzuweisung-auf-116690.html
Ausgedruckt am: 06.05.2025 um 21:05 Uhr
3 Kommentare
Neuester Kommentar
Moin Schnulle500,
in diesem Fall (wenn ein Argument ein Gleichheitszeichen enthält) musst du es ausdrücklich als EIN Argument kennzeichnen, indem Du es in Anführungszeichen einbettest.
Demo:
ist zusätzlich noch ein Teil des Arguments selbst in Anführungszeichen, dann entsprechend:
Grüße
Biber
in diesem Fall (wenn ein Argument ein Gleichheitszeichen enthält) musst du es ausdrücklich als EIN Argument kennzeichnen, indem Du es in Anführungszeichen einbettest.
Demo:
(=10:38:17 D:\temp=)
>test C:\myfolder\out.txt arg1=5 argx=y
C:\myfolder\out.txt
arg1
5
argx
y
(=10:38:41 D:\temp=)
>test C:\myfolder\out.txt "arg1=5" "argx=y"
C:\myfolder\out.txt
arg1=5
argx=y
ist zusätzlich noch ein Teil des Arguments selbst in Anführungszeichen, dann entsprechend:
>test C:\myfolder\out.txt "arg1=5" "argx="y""
C:\myfolder\out.txt
arg1=5
argx="y"
Grüße
Biber

Hallo Schnulle500,
die Standard Delimiter auf der Kommandozeile sind Komma Semikolon Leer Gleichheitszeichen und TAB.
Aber du kannst ja die Kommandozeile selber dekodieren
Alle Argumente ungetrennt kriegst du mit %*
Parsen musst du dann halt selber.
Gruß
LotPings
die Standard Delimiter auf der Kommandozeile sind Komma Semikolon Leer Gleichheitszeichen und TAB.
Aber du kannst ja die Kommandozeile selber dekodieren
Alle Argumente ungetrennt kriegst du mit %*
Parsen musst du dann halt selber.
Gruß
LotPings