如何批量转移所有参数

如何批量转移所有参数

可以使用众所周知的shift命令来移动批处理文件中的位置参数,但它不会影响特殊变量%*

shift 命令对 %* 批次参数没有影响。

还有其他转移的办法吗

答案1

不幸的是,没有内置语法可以实现您想要的功能。您能做的最好的事情是使用循环来构建一个包含所需参数列表的变量。每次迭代都会添加%1到列表中,然后移位。循环继续,直到没有更多参数。

仅当参数不包含任何未加引号的有害字符时,此方法才会起作用。

@echo off

shift /1
shift /1

set "remainingArgs="
:getRemainingArgs
if "%~1" neq "" (
  set ^"remainingArgs=%remainingArgs% %1"
  shift /1
  goto :getRemainingArgs
)
echo remainingArgs=%remainingArgs%

相关内容