获取命令行参数的批处理脚本

时间:2012-08-16 10:25:02

标签: batch-file

我是Windows批处理脚本的新手。我想编写一个获取命令行参数的批处理脚本,如下所示;

myscript -parameter1 param1 -parameter2 param2

它应该在脚本中将参数1设置为param1,将参数2设置为param2。 有没有人有一个代码块,上面做了什么?

由于

1 个答案:

答案 0 :(得分:4)

你可以通过循环遍历参数并尝试这样的事情:

:argloop
  set "arg=%~1"
  if "%arg:~0,1%"=="-" (
    set "%arg:~1%=%~2"
    shift
  )
  shift
if not "%1"=="" goto argloop

echo parameter 1: %parameter1%
echo parameter 2: %parameter2%

这将逐个查看参数,如果参数以-开头,它将设置一个具有相同名称的环境变量,并将下一个参数作为其值:

H:\>args.cmd -parameter1 param1 -parameter2 param2
parameter 1: param1
parameter 2: param2

如果您以后需要原始参数,那么您应该将上面的循环移到子程序中并以%*作为参数调用它。