首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在windows批处理文件或linux shell脚本中传递10个以上的参数?

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

Stack Overflow用户
提问于 2015-03-13 12:37:24
回答 2查看 3.4K关注 0票数 5

我需要向单个批处理文件(shell脚本)传递10个以上的参数,但在第9个参数之后,它将无法工作(它将从头开始)

代码示例

代码语言:javascript
复制
 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

有人能给出解决方案吗?

EN

回答 2

Stack Overflow用户

发布于 2015-03-13 12:47:51

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

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

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

票数 3
EN

Stack Overflow用户

发布于 2015-03-13 15:57:00

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

代码语言:javascript
复制
for %%i in (%*) do echo %%i

注意:您的参数不能包含某些字符(“标准分隔符”),例如,;,除非您将它们引起来:

代码语言:javascript
复制
mybatch.bat first second "this is the third" "four, not five" five 6 7 8 9 ...
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29024950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档