获取windows批处理文件中的最后一个命令行参数

问题描述:

我需要将最后一个参数传递给windows批处理脚本,我该怎么做?获取windows批处理文件中的最后一个命令行参数

+0

参见[这里](http://*.com/questions/357315/get-list-of -passed-arguments-in-windows-batch-script-bat) – 2011-04-27 14:00:41

最简单也许是最可靠的方法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