bat获取所有的参数

 bat默认只能获取到1-9个参数,分别用%1 %2 ... %9引用,而%0表示运行的bat命令。如果传给bat的参数大于9个,可以用shift。  
当然还可以使用 %\* 来获取全部的参数。

SHIFT [/n]

如果命令扩展名被启用, SHIFT 命令支持/n 命令行开关;该命令行开关告诉命令从第 n 个参数开始移位; n 介于零和八之间。例如:
SHIFT /2
会将 %3 移位到 %2,将 %4 移位到 %3,等等;并且不影响 %0 和 %1。

@echo off

set allparam=

:param
set str=%1
if "%str%"=="" (
    goto end
)
set allparam=%allparam% %str%
shift /0
goto param

:end
if "%allparam%"=="" (
    goto eof
)

rem remove left right blank
:intercept_left
if "%allparam:~0,1%"==" " set "allparam=%allparam:~1%"&goto intercept_left

:intercept_right
if "%allparam:~-1%"==" " set "allparam=%allparam:~0,-1%"&goto intercept_right

:eof
echo %allparam%

pause

参考文献:
bat获取所有的参数

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×