Tôi muốn ghi đè lên các tập tin host trên máy tính Windows nếu người dùng cho phép nó:Ant: Conditional Sao chép
<input message="Do you want to overwrite the HOSTS file?"
addproperty="overwrite.hosts" validargs="yes,no" />
<copy tofile="${env.WINDIR}/system32/drivers/etc/hosts.backup">
<fileset file="${env.WINDIR}/system32/drivers/etc/hosts" />
</copy>
<copy todir="${env.WINDIR}/system32/drivers/etc">
<fileset file="${trainer.dir}/hosts" />
</copy>
Làm thế nào để làm các bản sao chỉ khi người dùng nói có?
EDIT:
Tôi cố gắng này:
<input message="Do you want to overwrite the HOSTS file?" addproperty="overwrite.hosts" validargs="yes,no" />
<if>
<equals arg1="${overwrite.hosts}" arg2="yes" />
<then>
<copy tofile="${env.windir}/system32/drivers/etc/hosts.backup">
<fileset file="${env.windir}/system32/drivers/etc/hosts">
</fileset>
</copy>
<copy todir="${env.windir}/system32/drivers/etc">
<fileset file="${trainer.dir}/hosts">
</fileset>
</copy>
</then>
</if>
và tôi nhận được kết quả này:
C:\trainer\build.xml:16: Problem: failed to create task or type if
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.
Tôi là một tân binh ant ... Tôi cần phải làm gì?
cho điều này tôi phải tạo thêm một mục tiêu. Đó là cho tất cả các công việc có điều kiện tôi phải kiểm tra nó sau đó thiết lập tài sản và tạo mục tiêu mới sẽ được gọi trên thuộc tính thiết lập? Bất kỳ cách nào khác ? –
Vâng, chính xác, nếu bạn nhắm mục tiêu sao chép nhiều tệp khác nhau từ các địa điểm khác nhau và bạn CHỈ muốn sao chép một số tệp nhưng không phải tệp khác ... bạn cần mục tiêu thừa với cùng một tập hợp tác vụ, cùng với điều kiện bên trong mục tiêu để quyết định nhiệm vụ gọi điện thoại hay không – sloven