windows - 如何在 windows 批处理文件或 linux shell 脚本中传递超过 10 个参数

标签 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

谁能解决这个问题

最佳答案

基本上,%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/

相关文章:

windows - Linux Powershell 客户端

c++ - 调试器启动时 VS2012 : Breakpoint in ntdll. dll,没有更多信息

linux - 对 `find` - sh 的结果执行函数

java - 有没有办法从github下载项目并将其放在maven构建的项目文件夹中?

batch-file - 当文件不同时,批处理文件比较返回 0

使用 Windows api 在控制台中居中文本?

windows - 当前用户的数据文件放在哪里

linux - 如何将shell变量传递给shell脚本中的awk命令

batch-file - ClickOnce 应用程序不从任务计划程序执行

windows - 在嵌套批处理文件中设置环境变量