Как мога да предам аргументи на пакетния файл?

Трябва да предам ID и парола на пакетния файл по време на стартирането му, а не да ги кодирам във файла.

Ето как изглежда командният ред:

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

Друг полезен съвет е да използвате %* за означаване на "all". Например:

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

Когато стартирате:

test-command admin password foo bar

горният пакетен файл ще се изпълни:

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

Възможно е синтаксисът да е малко грешен, но това е общата идея.

Коментари (9)

Ако искате интелигентно да обработвате липсващи параметри, можете да направите нещо подобно:

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
Коментари (4)

Да, и само не забравяйте да използвате променливи като %%1, когато използвате if и for и други подобни.

Ако забравите двойния %, тогава ще замествате (евентуално нулеви) аргументи от командния ред и ще получавате доста объркващи съобщения за грешки.

Коментари (5)