我需要向单个批处理文件(shell脚本)传递10个以上的参数,但在第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有人能给出解决方案吗?
发布于 2015-03-13 12:47:51
基本上,%10被解释为%1 0。
要解决此问题,在批处理文件或shell脚本中,您可以将第一个参数保存在一个变量中,然后使用shift将所有剩余的参数减去1。当您调用shift时,%1 ( shell脚本中的$1)现在已消失,旧的%2变为%1,旧的%3变为%2,等等。有关详细信息,请参阅this answer。
在shell脚本中,您还可以使用${10}引用第十个参数。
发布于 2015-03-13 15:57:00
您可以使用%*获取所有参数,并使用for循环解析它们:
for %%i in (%*) do echo %%i注意:您的参数不能包含某些字符(“标准分隔符”),例如,或;,除非您将它们引起来:
mybatch.bat first second "this is the third" "four, not five" five 6 7 8 9 ...https://stackoverflow.com/questions/29024950
复制相似问题