Wie kann ich Argumente an eine Batch-Datei übergeben?

Ich muss eine ID und ein Kennwort zum Zeitpunkt der Ausführung an eine Stapeldatei übergeben, anstatt sie fest in die Datei zu kodieren.

So sieht die Befehlszeile aus:

test.cmd admin P@55w0rd > test-log.txt

Ein weiterer nützlicher Tipp ist die Verwendung von "%*" als Abkürzung für "alle". Zum Beispiel:

echo off
set arg1=%1
set arg2=%2
shift
shift
fake-command /u %arg1% /p %arg2% %*

Wenn Sie ausführen:

test-command admin password foo bar

wird die obige Batch-Datei ausgeführt:

fake-command /u admin /p password admin password foo bar

Die Syntax ist vielleicht nicht ganz korrekt, aber das ist die allgemeine Idee.

Kommentare (9)

Wenn Sie fehlende Parameter auf intelligente Weise behandeln wollen, können Sie etwas wie folgt tun:

IF %1.==. GOTO No1
IF %2.==. GOTO No2
... do stuff...
GOTO End1

:No1
  ECHO No param 1
GOTO End1
:No2
  ECHO No param 2
GOTO End1

:End1
Kommentare (4)

Ja, und vergessen Sie nicht, Variablen wie %%1 zu verwenden, wenn Sie if und for und so weiter benutzen.

Wenn Sie das doppelte "%" vergessen, ersetzen Sie (möglicherweise ungültige) Befehlszeilenargumente, und Sie erhalten einige ziemlich verwirrende Fehlermeldungen.

Kommentare (5)