2011-04-27 8 views

答えて

7

最も簡単でおそらく最も信頼できる方法uldは、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 
8

これは、引数の数を取得します:

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

は、実際の最後の引数を取得するには、コマンドラインがアンバランス引用符を持っている場合、これは失敗すること

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

注を行うことができます - %1などで使用される構文解析を直接使用するのではなく、forによってコマンドラインを再解析します。

+1

なぜあなたは引数の数で答えましたか?それは尋ねられたものではありませんでした。 – Joey

関連する問題