I\'d like to make sure that when calling my batch, no more than 2 parameters are passed.
Is there an easy way to check that, or do I have to call SHIFT as many times as
You can simply test for existence of a third parameter and cancel if present:
if not "%~3"=="" (
echo No more than two arguments, please
goto :eof
)
But more specifically, there is no direct way of getting the number of arguments passed to a batch, short of shift
ing and counting them. So if you want to make sure that no more than 19 arguments are passed, then you need to do exactly that. But if the number of expected arguments is below 9 above method works well.