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

我需要在运行时将id和密码传递给cmd(或bat)文件,而不是将它们硬编码到文件中。

以下是命令行的外观:

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 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
链接地址: http://www.djcxy.com/p/5123.html

上一篇: How do I pass command line parameters to a batch file?

下一篇: Why doesn't the 'where' command display any output when running in PowerShell?