我有一个包含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也将作为命令执行。