2

我对 Windows 批处理脚本完全陌生。我想编写一个获取命令行参数的批处理脚本,如下所示;

myscript -parameter1 param1 -parameter2 param2

它应该在脚本中将 parameter1 设置为 param1,将 parameter2 设置为 param2。有人有执行上述操作的代码块吗?

谢谢

4

1 回答 1

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%

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

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

如果您稍后需要原始参数,那么您应该将循环上方移动到子例程并将其%*作为参数调用。

于 2012-08-16T10:28:23.327 回答