如何检查驱动器 D 是否存在



我想将一些文件复制到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>

似乎不正确,如何解决?

看起来主要问题是目标目录中缺少第一个斜杠。D:shared/CountrySettings应该是D:/shared/CountrySettings(或D:\shared\CountrySettings,因为你在Windows上(。

我还强烈建议尽可能使用原生 Ant 的condition任务,而不是 ant-contrib 的 if/else 功能。

<condition property="dest.dir" value="D:sharedCountrySettings" else="C:sharedCountrySettings">
<available file="D:" />
</condition>
<copy todir="${dest.dir}" overwrite="true">
<fileset dir="${dist.CountrySettings.dir}/cfg" />
</copy>

相关内容

  • 没有找到相关文章

最新更新