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 &quot;@{var}&quot; where ******"/>
   </sequential>
</for>

Обратите внимание @{var} скорее, чем ${var},

Другие вопросы по тегам