计算发送到批处理文件的参数数量

sam*_*mdd 5 batch-file

如何计算发送到其中的批处理文件的命令行参数的数量.例如.从CMD我通话test.bat a b c d会导致4同时test.bat a b c d e f g h i j k l m n o会导致15.我目前的解决方案是:

@echo off
set var=0
if not "%~1"=="" set var=var+1
if not "%~2"=="" set var=var+1
if not "%~3"=="" set var=var+1
if not "%~4"=="" set var=var+1
if not "%~5"=="" set var=var+1
if not "%~6"=="" set var=var+1
if not "%~7"=="" set var=var+1
if not "%~8"=="" set var=var+1
if not "%~9"=="" set var=var+1
echo %var%
pause
Run Code Online (Sandbox Code Playgroud)

但这是一种效率低下的解决方案,因为最多可以检测到9个

什么是另类?