2011-04-27 21 views

Respuesta

7

La forma más fácil y quizás más confiable Debería simplemente usar el propio análisis de cmd para argumentos y shift hasta que desaparezcan.

Dado que esto destruye el uso de %1, etc Usted puede hacerlo de una subrutina:

@echo off 
call :lastarg %* 
echo Last argument: %LAST_ARG% 
goto :eof 

:lastarg 
    set "LAST_ARG=%~1" 
    shift 
    if not "%~1"=="" goto lastarg 
goto :eof 
8

Esto hará que el recuento de argumentos:

set count=0 
for %%a in (%*) do set /a count+=1 

Para obtener el último argumento real, que puede hacer

for %%a in (%*) do set last=%%a 

Tenga en cuenta que esto va a fallar si la línea de comandos tiene comillas desequilibradas - la la línea de comando se vuelve a analizar por for en lugar de utilizar directamente el análisis utilizado para %1 etc.

+1

¿Por qué respondiste con el recuento de argumentos? Eso no fue lo que se preguntó. – Joey

Cuestiones relacionadas