我想制作一个应该能够运行 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
(在提示符下)时,它按预期工作,但当我点击输入时,就会发生这种情况。
答案 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>