批处理:检查参数数量

Jér*_*ôme 17 batch-file

我想确保在调用我的批处理时,传递的参数不超过2个.

是否有一种简单的方法来检查,或者我必须根据需要多次调用SHIFT,直到参数值为空?

Joe*_*oey 24

您可以简单地测试是否存在第三个参数,如果存在则取消:

if not "%~3"=="" (
    echo No more than two arguments, please
    goto :eof
)
Run Code Online (Sandbox Code Playgroud)

但更具体地说,没有直接的方法来获取传递给批处理的参数数量,而不是shift计算它们.因此,如果您想确保传递的参数不超过19个,那么您需要做到这一点.但是如果预期参数的数量低于9,则上述方法效果很好.


mjv*_*mjv 5

IF NOT "%3"=="" GOTO Too_Many_Args
Run Code Online (Sandbox Code Playgroud)