Windows批处理函数无法从调用者接收参数值

时间:2017-09-04 02:01:56

标签: batch-file

这是脚本示例,函数create_es_template使用%~1从调用者接收参数。但是,结果总是“template_name not set!”。我的用法有什么问题?

:: create elasticsearch template

@echo off

:: define the function
:create_es_template
ECHO parameters: %*
IF "%~1"=="" (
  ECHO template_name not set!
  EXIT /B -1
)
SET "template_name=%~1"
EXIT /B %ERRORLEVEL%

:: call the function
CALL :create_es_template  my_template_1
EXIT /B %ERRORLEVEL%

环境:Windows 10 Enterprise x64

1 个答案:

答案 0 :(得分:1)

我认为你应该在主代码后面移动子函数[:create_es_template]。它会正常工作。