How to make a conditional lable call in batch -


i want make simple batch script should able run ant build script. when start batfile want prompt me target name. simple conditional test: if type enter (without entering string) goto lable1, else goto lable2 (wich calls ant argument, have entered @ promt). tried didn't work:

@echo off  set /p target=please enter target:    if %target%=="" (goto call_script_with_default_target) else (goto     call_script_with_specified_target)  :call_script_with_default_target echo ant default-target ::when no argument present, assumes default target ant  pause goto end  :call_script_with_specified_target echo ant %target% ant %target% goto end  :end pause 

when type clean (at prompt) works expected, when hit enter nothings happen.

the facts:

  • set /p target=please enter target: command keeps value of target variable unchanged if user hits enter;
  • %target% evaluates empty string if not initialised. hence, if %target%=="" (... evaluates syntactically wrong if =="" (... , raises error.

either use if "%target%"=="" (..., or simplify script equivalent

@echo off  set "target=" set /p target=please enter target:    call ant %target%  :end pause 

Comments

Popular posts from this blog

php - Invalid Cofiguration - yii\base\InvalidConfigException - Yii2 -

How to show in django cms breadcrumbs full path? -

ruby on rails - npm error: tunneling socket could not be established, cause=connect ETIMEDOUT -