07-23-2023, 02:52 AM
How can I count the amount of command-line parameters sent to a batch file inside it. eg. from CMD I call `test.bat a b c d` would result `4` while `test.bat a b c d e f g h i j k l m n o` would result `15`. My current solution is:
@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
This is a inefficient solution though, as a maximum of 9 can be detected
What would be an alternative?
@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
This is a inefficient solution though, as a maximum of 9 can be detected
What would be an alternative?