如何批量给函数一个参数

How to give a function an argument in batch

如何批量给一个函数一个参数?以一个简单的小 hello world 脚本为例:

:hello
    @echo Hello World!

goto :hello

如果什么都没有给出,我怎样才能把这个 "function" 作为参数并输出 "world!"?例如:

:hello <name>
    if %name%=="" (
        @echo Hello World!
    ) else (
        @echo Hello %name%!
    )

是否有在批处理脚本中提供函数参数的正确方法?我做了一些研究,我唯一能真正找到的是将文件和 ARGV 传递给脚本

第一个参数被引用为 %1,第二个参数被引用为 %2,等等。参见 call /?:

call :hello Jake
@echo ===============
call :hello
goto :eof

:hello 
  if "%~1"=="" (
    @echo Hello World!
  ) else (
    @echo Hello %1!
  )

第一个 call 为例程 :hello 提供一个参数,第二个 call 不提供任何参数