フィルターチェーン要素をサポートするタスク、つまり組み込みの Concat、Copy、LoadFile、LoadProperties、Move タスクで、フィルターチェーンでフィルターを使用しています。
したがって、たとえば、linecontains フィルターを含むフィルターチェーンを使用してファイルをコピーまたは移動します。
linecontains フィルターで negate パラメーターを使用して、その文字列を含む行を除外します。
例: 次のコードを検討してください。
<project default="test">
<target name="test">
<copy tofile="file.txt.edit" file="file.txt">
<filterchain>
<linecontains negate="true">
<contains value="[echo]"/>
</linecontains>
</filterchain>
</copy>
</target>
</project>
outputs:
$ cat file.txt
[echo] Your project1 location is: D:/Project/Project1
[echo] Your project2 location is: D:/Project/Project2
[script] my script running
[echo] Your project3 location is: D:/Project/Project3
[echo] Your project4 location is: D:/Project/Project4
$ cat file.txt.edit
[script] my script running
Expected:
$ cat file.txt.edit
Your project1 location is: D:/Project/Project1
Your project2 location is: D:/Project/Project2
[script] my script running
Your project3 location is: D:/Project/Project3
Your project4 location is: D:/Project/Project4
ここでフィルターチェーンを使用している場合、行全体が削除されます。[エコー]、[スクリプト]...などの単語だけが必要です。削除する必要があります。