如何在Windows批处理文件或linux shell脚本中传递10个以上的参数

时间:2015-03-13 04:37:24

标签: windows shell batch-file cmd

我需要将10个以上的参数传递给单个批处理文件(shell脚本) 但是在第9次争论之后它将不起作用(它将从头开始)

代码示例

 echo Hello! This a sample batch file.
    echo %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16
    pause



>mybatchdotbat a b c d e f g h i j  k l m n o p

任何人都可以为此提供解决方案

2 个答案:

答案 0 :(得分:2)

您可以使用%*获取所有参数并使用for循环解析它们:

for %%i in (%*) do echo %%i

注意:您的参数可能不包含某些字符("标准分隔符"),例如,;,除非您引用它们:

mybatch.bat first second "this is the third" "four, not five" five 6 7 8 9 ...

答案 1 :(得分:1)

基本上,%10被解释为%1 0

要解决这个问题,在批处理文件或shell脚本中,您可以将第一个参数保存在变量中,然后使用shift将所有剩余参数递减1.当您调用shift时,%1(shell脚本中的$1)现已消失,旧%2变为%1,旧%3变为%2等。有关详细信息,请参阅this answer

在shell脚本中,您还可以使用${10}引用第十个参数。