如何批量生成条件标签

时间:2015-10-22 13:47:32

标签: batch-file

我想制作一个应该能够运行 ant build script 的简单批处理脚本。当我启动batfile时,我希望它提示我输入目标名称。然后做一个简单的条件测试:如果我只输入enter(不输入任何字符串)给GOTO一个lable1,ELSE给GOTO输入lable2(用参数调用 ant ,我输入的是PROMT)。所以这就是我尝试过但却没有用的东西:

@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 is present, it assumes default target
ant 
pause
GOTO End

:Call_script_with_specified_target
echo ant %target%
ant %target%
GOTO End

:End
pause

当我输入clean(在提示符下)时,它按预期工作,但当我点击输入时,就会发生这种情况。

3 个答案:

答案 0 :(得分:2)

事实:

  • set /p target=Please enter target:命令保持target变量的值不变,如果用户只是按输入;
  • 如果没有初始化,
  • %target%计算为空字符串。因此,IF %target%=="" (...评估语法错误IF =="" (...并引发错误。

使用IF "%target%"=="" (...,或将脚本简化为等效的

@echo off

set "target="
set /p target=Please enter target:  

call ant %target%

:End
pause

答案 1 :(得分:1)

在测试的两个边包括引号。

IF "%target%"=="" ...

或检查变量是否包含某些内容

if defined target ...

或检测set /p操作是否失败

set /p "target=Please enter target:"  || GOTO Call_script_with_default_target

答案 2 :(得分:1)

您可以使用“if defined variable”或“if not defined variable”:

<script type="text/javascript">
    $(document).ready(function() {
          if(window.location.href===window.location.hostname) {
               $("body").addClass("home");
           }
    });
</script>