Я бы предложил работать с макросами над subant / antcall, потому что главное преимущество, которое я нашел с макросами, заключается в том, что вы полностью контролируете свойства, которые передаются макросу (особенно если вы хотите добавить новые свойства).
Вы просто реорганизуете свой скрипт Ant, начиная с вашей цели:
<target name="vss.check">
<vssadd localpath="D:\build\build.00012.zip"
comment="Added by automatic build"/>
</target>
создание макроса (обратите внимание на копирование / вставку и замену на @ {file}):
<macrodef name="private-vssadd">
<attribute name="file"/>
<sequential>
<vssadd localpath="@{file}"
comment="Added by automatic build"/>
</sequential>
</macrodef>
и вызовите макросы со своими файлами:
<target name="vss.check">
<private-vssadd file="D:\build\File1.zip"/>
<private-vssadd file="D:\build\File2.zip"/>
</target>
Рефакторинг, "Муравейник"