协慌网

登录 贡献 社区

如何将参数传递给批处理文件?

我需要在运行时将 ID 和密码传递给批处理文件,而不是将它们硬编码到文件中。

这是命令行的样子:

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

答案

另一个有用的提示是使用%*表示 “全部”。例如:

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

我的语法可能略有错误,但这是一般的想法。

我是这样做的:

@fake-command /u %1 /p %2

这是命令的样子:

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

%1适用于第一个参数%2 (这里是棘手的部分)适用于第二个参数。您最多可以以这种方式传递 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