我需要将超过 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
谁能解决这个问题
最佳答案
基本上,%10
被解释为 %1
0
。
要解决此问题,在批处理文件或 shell 脚本中,您可以将第一个参数保存在变量中,然后使用 shift
将所有剩余参数递减 1。当您调用 shift
,%1
(shell 脚本中的 $1
)现在不见了,旧的 %2
变成了 % 1
,旧的 %3
变为 %2
,等等。参见 this answer了解更多详情。
在 shell 脚本中,您还可以使用 ${10}
引用第十个参数。
关于windows - 如何在 windows 批处理文件或 linux shell 脚本中传递超过 10 个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29024950/