既然%*
它batch parameter is a wildcard reference to all the arguments not including %0
,你不能使用~
它,但你可以循环所有参数和%%~
它们,例如:
for %%x in (%*) do (
echo %%~x
)
Run Code Online (Sandbox Code Playgroud)
此外,如果您需要将它们组合成单个参数,您可以使用setlocal enabledelayedexpansion
此循环:
setlocal enabledelayedexpansion
set args=
for %%x in (%*) do (
set args=!args! %%~x
)
echo %args:~1%
Run Code Online (Sandbox Code Playgroud)
说明:
!args!
是在使用时使用变量的另一种方法 setlocal enabledelayedexpansion
%args:~1%
删除第一个空格.这里是没有的例子setlocal enabledelayedexpansion
,它不会吃掉!
参数中的符号:
set args=
for %%x in (%*) do call :SETARGS %%x
GOTO :END
:SETARGS
set args=%args% %~1
:END
echo %args:~1%
Run Code Online (Sandbox Code Playgroud)