Получит количество аргументов:
set count=0
for %%a in (%*) do set /a count+=1
Чтобы получить последний аргумент, вы можете сделать:
for %%a in (%*) do set last=%%a
Обратите внимание, что это не удастся, если командная строка не сбалансированакавычки - командная строка анализируется for
вместо непосредственного использования синтаксического анализа, используемого для %1
и т. д.