我正在使用以下代码块处理一些批处理脚本:
echo off
echo SETTING UP ANT FOR THE BUILD ....
set ANT_HOME=%~dp0%build\apache-ant-1.8.2
set ANT_BIN=%~dp0%build\apache-ant-1.8.2\bin
SET path=%path%;%ANT_BIN%;%ANT_BIN%;
echo PATH: %path%
echo ANT_HOME: %ANT_HOME%
echo ANT_BIN: %ANT_BIN%
echo ANT GOT INSTALLED ....
它帮助我在环境变量中设置我的ant路径的路径。
现在,每次我运行这个bat文件时,都会设置ant的环境变量。
我必须提出一些条件,如果路径已经存在,那么只需跳过设置选项,否则设置选项开始。
我们如何使用bat脚本执行此操作?由于我是bat脚本的新手,我尝试使用以下代码块:
如果“%ANT_HOME%”==“”GOTO NOPATH :YESPATH ...
:NOPATH ...
但问题是我无法检查如何检查以下情况: %ANT_HOME%不为空,但有一些无效的ant目录路径。
有人可以帮助我吗?
答案 0 :(得分:1)
您可以使用IF EXIST
检查文件是否存在。改编自this answer:
if exist "%ANT_HOME%" (
rem file exists
) else (
rem file doesn't exist
)
答案 1 :(得分:1)
您的脚本中有错误:
SET path=%path%;%ANT_BIN%;%ANT_BIN%;
这应该是:
SET "path=%path%;%ANT_HOME%;%ANT_BIN%"
如果要检查不存在的路径,则应在末尾放置反斜杠。否则,如果存在具有此名称的文件,则也是如此:
if exist "%ANT_HOME%\" (echo %ANT_HOME% found.) else echo Error: %ANT_HOME% not found!
答案 2 :(得分:1)
要避免,将您的条目多次添加到路径中,您应该检查一下。
set path | find "%ANT_HOME%;%ANT_BIN%"
如果已经附加了,则会给出%errorlevel%'0',如果没有,则为'1'。