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

sma*_*hno 5 windows shell cmd batch-file

我需要将 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
Run Code Online (Sandbox Code Playgroud)

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

fzz*_*fzz 3

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

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

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