我想将某些文件复制到D驱动器,但是在测试环境中只有C驱动器,所以我想添加条件以首先检查是否有D驱动器,否则将文件复制到C。
<if>
<available file="D:\" />
<then>
<copy todir="D:shared/CountrySettings" overwrite="true">
<fileset dir="${dist.CountrySettings.dir}/cfg" />
</copy>
</then>
<else>
<copy todir="C:shared/CountrySettings" overwrite="true">
<fileset dir="${dist.CountrySettings.dir}/cfg" />
</copy>
</else>
</if>
似乎不正确,如何解决?
答案 0 :(得分:1)
主要问题在于您在目标目录中缺少第一个斜杠。 D:shared/CountrySettings
应该为D:/shared/CountrySettings
(或D:\ shared \ CountrySettings,因为您使用的是Windows)。
我还强烈建议尽可能使用本机Ant的condition
任务,而不是使用ant-contrib的if / else功能。
<condition property="dest.dir" value="D:\shared\CountrySettings" else="C:\shared\CountrySettings">
<available file="D:\" />
</condition>
<copy todir="${dest.dir}" overwrite="true">
<fileset dir="${dist.CountrySettings.dir}/cfg" />
</copy>