如何获取windows批处理文件中的其余参数?
我知道我可以用%0获取第一个参数,用%1获取第二个参数,依此类推。。我还可以用%*获取所有参数 我可以从第二个参数中获取所有参数吗?例如,如果我跑步如何获取windows批处理文件中的其余参数?,windows,batch-file,Windows,Batch File,我知道我可以用%0获取第一个参数,用%1获取第二个参数,依此类推。。我还可以用%*获取所有参数 我可以从第二个参数中获取所有参数吗?例如,如果我跑步 foo.bat bar1 bar2 bar3 bar4 如何仅使用SHIFT命令获取bar2 bar3 bar4?。但每次轮班你都会失去第一个。 这不会更改%*,但您可以获取所有参数,但第一个参数除外: @echo off shift set "arg_line= " :parse_args if "%~1" NEQ "" ( arg_lin
foo.bat bar1 bar2 bar3 bar4
如何仅使用
SHIFT
命令获取bar2 bar3 bar4
?。但每次轮班你都会失去第一个。
这不会更改%*
,但您可以获取所有参数,但第一个参数除外:
@echo off
shift
set "arg_line= "
:parse_args
if "%~1" NEQ "" (
arg_line=%argline% "%~1"
goto :parse_args
)
现在,除了第一个参数外,所有参数都存储在
%arg\u line%
中。您需要使用SHIFT
。它移动参数的表观位置,然后%*
将获得从位置移动到的所有参数。您应该在使用SHIFT
之前获取第一个参数
@ECHO OFF
SETLOCAL
SET allargs=%*
IF NOT DEFINED allargs echo no args provided&GOTO :EOF
SET arg1=%1
CALL SET someargs=%%allargs:*%1=%%
ECHO allargs %allargs%
ECHO arg1 %arg1%
ECHO someargs %someargs%
打开SHIFT
@ECHO OFF
SETLOCAL
SET allargs=%*
IF NOT DEFINED allargs echo no args provided&GOTO :EOF
SET arg1=%1
CALL SET someargs=%%allargs:*%1=%%
ECHO allargs %allargs%
ECHO arg1 %arg1%
ECHO someargs %someargs%
这将使
SOMEARGS
至少有一个前导分隔符(如果设置了)很好,但您的意思是echo
(在第四行)?@user2033427是-修复了。这是错误的,SHIFT
只影响%0、%1、%2…%9
但不是%*