4

我正在尝试复制从以 _${env}.xml 结尾的根文件夹开始的所有目录下的文件,如果找到,则从文件名中删除 _${env} 或复制目录中存在的 xml 文件.我无法让它工作,请帮忙。(可能我需要一个移动和映射器来重命名,但我无法将它们编织在一起。)

<target name="main">
    <copy todir="qa-wprelease"> 
        <fileset  dir="bin-debug" includes="**/*.xml"> 
            <or>
                <filename name="*_${env}.xml"/> 
                <filename name="*.xml" />
            </or>
        </fileset>
    </copy> 
</target>
4

2 回答 2

11

检查<copy>任务手册 -<copy>可以采用<mapper>嵌套元素,它可以在复制过程中使用模式更改文件名。<mapper>有很多类型,其中一些你甚至可以使用 javascript 来更改你的文件名。

所以......也许你可以这样做(未经测试,所以不确定它是否有效):

<copy todir="qa-wprelease" includeemptydirs="false">
    <fileset dir="bin-debug" includes="**/*.xml" />
    <globmapper from="*_${env}.xml" to="*.xml"/>
</copy>
于 2012-07-11T01:44:27.347 回答
0

First copy all of the XML files under the bin-debug directory to qa-wprelease. For each XML file in qa-wprelease that ends with _${env}.xml, use the <move> task to remove _${env}.

<target name="main">
  <mkdir dir="qa-wprelease" />

  <copy todir="qa-wprelease" includeemptydirs="false">
    <fileset dir="bin-debug" includes="**/*.xml" />
  </copy>
  <move todir="qa-wprelease" includeemptydirs="false">
    <fileset dir="qa-wprelease" includes="**/*_${env}.xml" />
    <mapper type="glob" from="*_${env}.xml" to="*.xml"/>
  </move>
</target>
于 2012-07-10T07:15:30.790 回答