Трябва да предам 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
Възможно е синтаксисът да е малко грешен, но това е общата идея.
Ако искате интелигентно да обработвате липсващи параметри, можете да направите нещо подобно:
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
Да, и само не забравяйте да използвате променливи като %%1
, когато използвате if
и for
и други подобни.
Ако забравите двойния %
, тогава ще замествате (евентуално нулеви) аргументи от командния ред и ще получавате доста объркващи съобщения за грешки.