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

问题描述:

我是全新的windows批处理脚本。我想编写一个批处理脚本来获取如下的命令行参数;获取命令行参数的批处理脚本

的MyScript -parameter1参数1 -parameter2参数2

应该设置参数1至参数1和参数2到脚本中PARAM2。 有没有人有这样做的代码块?

感谢

+2

可能重复的[Windows蝙蝠文件可选参数解析](http://stackoverflow.com/questions/3973824/windows-bat-file-optional-argument-parsing)看看[我最近的答案](http ://stackoverflow.com/a/8162578/1012053)到这个老问题 - 它有一些想法和技术,你可能会发现有用的。 – dbenham 2012-08-16 11:26:28

你可以通过参数与一个循环,并尝试这样的事:

: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 

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

+0

thx为响应,它为我工作 – kyy 2012-08-16 10:39:04

+0

@korhan如果它为你工作,那么也许你可以考虑接受答案?接受答案会让人们更愿意在未来回答你。 – 2012-08-16 11:07:52

+0

@Joachim我不知道它感谢提醒 – kyy 2012-08-16 11:37:02