获取windows批处理文件中的最后一个命令行参数
答
最简单也许是最可靠的方法wo只是使用cmd
自己的参数解析和shift
,然后直到没有更多。
因为这破坏了使用%1
等,你可以做一个子程序:
@echo off
call :lastarg %*
echo Last argument: %LAST_ARG%
goto :eof
:lastarg
set "LAST_ARG=%~1"
shift
if not "%~1"=="" goto lastarg
goto :eof
答
这将让参数的计数:
set count=0
for %%a in (%*) do set /a count+=1
获得实际的最后一个参数,你可以做
for %%a in (%*) do set last=%%a
注意,如果在命令行中有不平衡报价,这将失败 - 命令行被for
重新解析,而不是直接使用用于%1
等的解析。
+1
你为什么用参数计数来回答?那不是被问到的。 – Joey 2011-04-27 16:09:59
参见[这里](http://stackoverflow.com/questions/357315/get-list-of -passed-arguments-in-windows-batch-script-bat) – 2011-04-27 14:00:41