Batch file 如何批量进行条件标签调用

Batch file 如何批量进行条件标签调用,batch-file,Batch File,我想制作一个简单的批处理脚本,该脚本应该能够运行ant构建脚本。当我启动batfile时,我希望它提示我输入目标名称。然后做一个简单的条件测试:如果我只是输入enter(不输入任何字符串)转到标签1,否则转到标签2(调用带有参数的ant,即我在promt中输入的内容)。这就是我试过但没用的东西: @echo off set /p target=Please enter target: IF %target%=="" (GOTO Call_script_with_default_targe

我想制作一个简单的批处理脚本,该脚本应该能够运行ant构建脚本。当我启动batfile时,我希望它提示我输入目标名称。然后做一个简单的条件测试:如果我只是输入enter(不输入任何字符串)转到标签1,否则转到标签2(调用带有参数的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
(在提示下)时,它会按预期工作,但当我刚刚点击enter时,不会发生任何事情。

在测试的两侧都包含引号

IF "%target%"=="" ...
或者检查变量是否包含某些内容

if defined target ...
或者检测
设置/p
操作是否失败

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

在测试的两边都加上引号

IF "%target%"=="" ...
或者检查变量是否包含某些内容

if defined target ...
或者检测
设置/p
操作是否失败

set /p "target=Please enter target:"  || GOTO Call_script_with_default_target
您可以使用“如果定义了变量”或“如果未定义变量”,例如:

您可以使用“如果定义了变量”或“如果未定义变量”,例如:

事实:

  • set/p target=请输入目标:
    命令保持
    target
    变量的值不变,如果用户只按enter键
  • %target%
    如果未初始化,则计算结果为空字符串。因此,
    IF%target%==“”(…
    计算结果为语法错误
    IF==“”(…
    并引发错误
如果“%target%”==“”(…,请使用
,或者将脚本简化为等效脚本

@echo off

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

call ant %target%

:End
pause
事实:

  • set/p target=请输入目标:
    命令保持
    target
    变量的值不变,如果用户只按enter键
  • %target%
    如果未初始化,则计算结果为空字符串。因此,
    如果%target%==“”(…
    计算结果为语法错误
    如果==“”(…
    并引发错误
如果“%target%”==“”(…
,请使用
,或者将脚本简化为等效脚本

@echo off

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

call ant %target%

:End
pause

如果“%target%”==”
,请尝试使用
。请记住
ant
是一个bat文件,您需要它像调用ant一样调用它。
如果“%target%”==”,请尝试使用
。请记住,
ant
是一个bat文件,您需要它像调用ant一样调用它。LOL-我们都非常专注于消除错误,有时看不到明显的…+1LOL-我们都非常专注于消除错误,有时看不到明显的…+1