ant concat, echo Невозможно распечатать после подстановки переменной
<target name="init">
<loadfile property="Files" srcFile="C:/tabnames.txt">
</loadfile>
<foreach list="${Files}"
target="dbload"
param="var"
delimiter="${line.separator}" />
</target>
<target name="load">
<echo file="D:/README" append="true">selct * from "${var}" where ******; :${line.separator}</echo>
<!-- <concat file="D:/README" append="true">selct * from "${var}" where ******; :${line.separator}</concat> -->
</target>
и вывод:
select * from "a
select * from "b
проблема после подстановки переменной я не могу конкататься...
мне нужно как
select * from "a" where *******
select * from "b" where ********`
РЕДАКТИРОВАТЬ:-
у меня уже есть файл... хочу добавить новую строку в качестве первой строки, но ее добавление в качестве последней строки...
1 ответ
Несколько подсказок:
- Вы должны использовать вместо
<foreach>
,<for>
не требует использования отдельной цели для работы. Не забудьте использоватьnet/sf/antcontrib/antlib.xml
когда вы определяете ресурс, а неnet/sf/antcontrib/antcontrib.properties
, - Если свойство (Ant не использует переменные), его нельзя изменить. То, что вы передаете, это параметры, которые вы используете
@{var}
синтаксис для а не${var}
синтаксис для свойств. Параметры передаются при каждом вызове и могут изменяться.
Вот как будет выглядеть ваша рутина <for>
:
<for list="${Files}"
param="var">
<sequential>
<echo file="D:/README"
append="true"
message="select * from "@{var}" where ******"/>
</sequential>
</for>
Обратите внимание @{var}
скорее, чем ${var}
,