重命名与移动 Ant 任务

2023-12-07

实际上我正在使用<move>cmd 用于重命名一个文件夹而不是<rename>cmd。但就我而言,我要移动 48746 个文件,因此大约需要 1 小时。请告诉我以最佳方式重命名该文件夹的适当方法。提前致谢。

<target name="rename_folder_jet" depends="Upload_on_ftp">
    <move todir="${build.dir}_jet_${ver_number}">
        <fileset dir="${build.dir}">
            <include name="**/*.*"/>
        </fileset>
    </move>
</target>

尝试仅移动/重命名目录,而不是其所有内容。像这样:

<target name="rename_folder_jet" depends="Upload_on_ftp">
    <move file="${build.dir}" todir="${build.dir}_jet_${ver_number}"/>
</target>

并在开始之前确保目标目录不存在。

我尝试了以下构建文件:

<project default="rename_folder_jet">
  <property name="build.dir" value="build"/>
  <property name="ver_number" value="0.3"/>

  <target name="setup">
    <mkdir dir="${build.dir}"/>
    <mkdir dir="${build.dir}/foo"/>
    <mkdir dir="${build.dir}/bar"/>
  </target>

  <target name="teardown">
    <delete dir="${build.dir}_jet_${ver_number}"/>
  </target>

  <target name="rename_folder_jet">
    <move file="${build.dir}" todir="${build.dir}_jet_${ver_number}"/>
  </target>
</project>

使用上面的代码在调试中执行 Ant (ant -d) 很有趣。

Case 1:

ant teardown
ant setup
ant -d

在这种情况下,移动/重命名的目标目录不存在。 Ant 的调试输出显示:

 [move] Attempting to rename dir: C:\Users\sudocode\tmp\ant\build to C:\Users\sudocode\tmp\ant\build_jet_0.3\build

Case 2:

ant setup
ant
ant setup
ant -d

在这种情况下,目标目录在第二次执行时已经存在。 Ant 的调试输出显示:

     [move] Attempting to rename dir: C:\Users\sudocode\tmp\ant\build to C:\Users\sudocode\tmp\ant\build_jet_0.3\build
fileset: Setup scanner in dir C:\Users\sudocode\tmp\ant\build with patternSet{ includes: [] excludes: [] }
     [move] Deleting directory C:\Users\sudocode\tmp\ant\build\foo
     [move] Deleting directory C:\Users\sudocode\tmp\ant\build\bar
     [move] Deleting directory C:\Users\sudocode\tmp\ant\build

所以看起来如果目标目录尚不存在,Ant 将执行rename目录的。但如果目标目录存在,它会执行copy进入目录并从源目录中删除。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

重命名与移动 Ant 任务 的相关文章

随机推荐