Batch-Datei für die Schleife durch den Schalter-wie Argumente?

Ich versuche, eine Schleife durch die Argumente, dass ich mich übergeben, um eine batch-Datei. Basierend auf dem argument, ich möchte eine variable flag true oder false zur späteren Verwendung im Skript

Also mein Befehl ist, "myscript.Fledermaus /u /p /s"

Und mein code ist:

FOR /f %%a IN ("%*") DO (
  IF /I "%%a"=="/u" SET UPDATE=Y
  IF /I "%%a"=="/p" SET PRIMARY=Y
  IF /I "%%a"=="/s" SET SECONDARY=Y
)

Funktioniert es nur, wenn ich ein einziges argument, was mir sagt, es ist immer die gesamte Liste der Argumente als ein einziges argument. Ich habe versucht, "delims= ", aber ohne Erfolg. Irgendwelche Gedanken zu bekommen jede spaced argument?


Was über das hinzufügen eines Werts zu einem der params?

myscript.Fledermaus /u /p /d TEST /s

:loop
IF "%~1"=="" GOTO cont
IF /I "%~1"=="/u" SET UPDATE=Y
IF /I "%~1"=="/p" SET PRIMARY=Y
IF /I "%~1"=="/s" SET SECONDARY=Y
IF /I "%~1"=="/d" SHIFT & SET DISTRO="%~1"
SHIFT & GOTO loop

:cont

Aber der Wechsel kommt, dass inline-mit der letzten, WENN nicht gar shift-nichts. DISTRIBUTION endet als "/d" anstelle von "TEST"

InformationsquelleAutor DssTrainer | 2011-03-09

Schreibe einen Kommentar