在Windows批处理文件中传递9个以上的参数

时间:2018-09-25 04:28:35

标签: windows batch-file

我有一个包含2个命令的批处理文件,如下所示

echo y | "%10\putty\plink.exe" -ssh %6@%1 -pw "%7" exit
"%10\putty\plink.exe" -ssh %6@%1 -pw "%7" "/u01/./script.sh %1 %2 %3 %4 %5 %6 %7 %8 %9"

如您所见,它从另一个调用此批处理的程序中获取10个参数。

这里的问题是第10个参数,因为我们只能使用不超过%9的参数,之后将%10视为%1,即第一个参数,0作为另一个值。

我该如何解决?

我已经检查了How to pass more than 9 parameters to batch file,但是在我的情况下,参数位置不同,因为传递给命令的第一个参数实际上是从程序传递的第十个参数,即echo y | “%10 \ putty \ plink.exe”

我有点不知道如何在这里使用shift。

请帮忙!

编辑:

我试图从程序调用本身更改参数的位置,这样我只需要像这样传递第十个参数即可:

echo y | "%1\putty\plink.exe" -ssh %7@%2 -pw "%8" exit
"%1\putty\plink.exe" -ssh %7@%2 -pw "%8" "/u01/./script.sh %2 %3 %4 %5 %6 %7 %8 %9
shift
shift
shift
shift
shift
shift
shift
shift
shift
shift %1"

传递的参数与预期的一样,但是这里的问题是命令无法一次性执行。

"%1\putty\plink.exe" -ssh %7@%2 -pw "%8" "/u01/./script.sh %2 %3 %4 %5 %6 %7 %8 %9 %10"

是单个命令,但是shift也将作为命令执行。

0 个答案:

没有答案