使用 Ant,我可以更改 属性 名称(如果它已经存在)吗?

Using Ant, can I change a property name if it already exists?

我目前有一个批处理文件,可以将一些测试结果复制到一个目录中。该目录将有一个日期 (yyyy-mm-dd)。如果该日期已经存在,它将创建一个具有相同日期的新文件夹,但附加一个 运行 数字(yyyy-mm-dd 运行 2,yyyy-mm-dd 运行 3 )

@echo off
title Copy the FF results to the results folder

set "date=%date:~10,4%-%date:~4,2%-%date:~7,2%"
set "run="
set "browser=FF"
set "results_paste=C:\TestProject\Results"

:loop
if "%run%"=="1" set "date=%date%_run "
if "%run%"=="1" set "run=2"
if EXIST "%results_paste%\%date%%run%\%browser%\" set /a run+=1&goto loop

REM Create HTML directory and copy results
xcopy "%workspace%\test-output\html\*.*" "%results_paste%\%date%%run%\%browser%\"

REM Create screenshot directory and copy results
xcopy "%workspace%\test-output\XML\screenshots\*.*" "%results_paste%\%date%%run%\XML\screenshots\"

我如何使用 ANT 完成同样的功能?这是我到目前为止所拥有的。我不确定如何检查日期文件夹是否已存在,如果存在,则创建一个 运行 2 文件夹。

<project default="CopyResults">

        <property name="Run" value="" />
        <tstamp>
          <format property="Date" pattern="yyyy-mm-dd" locale="en,US,WIN" />
        </tstamp>

        <copy todir="C:/Results/${Date}${Run}/${Project}/${Browser}">
          <fileset dir="C:/Program Files (x86)/Jenkins/jobs/${PROJECT_NAME}/workspace/test-output/html/*.*">
        </copy>

        <dirname property="directoryProperty" file="C:/Program Files (x86)/Jenkins/jobs/$PROJECT_NAME/workspace/test-output/${XML}/screenshots"/>
        <mkdir dir="${directoryProperty}"/>

        <copy todir="C:/Results/${Date}${Run}/${Project}/${XML}/screenshots/">
          <fileset dir="C:/Program Files (x86)/Jenkins/jobs/${PROJECT_NAME}/workspace/test-output/${XML}/screenshots/*.*">
        </copy>

示例如下:

<project default="CopyResults">

<property name="target" location="c:/temp/anttests"/>
<property name="source" location="C:/temp/source"/>

<target name="CopyResults">

    <tstamp>
      <!-- uppercase M is month -->
      <format property="Date" pattern="yyyy-MM-dd" locale="en,US,WIN" />
    </tstamp>

    <!-- calculate increment number -->
    <resourcecount property="Run">
        <dirset dir="${target}">
            <include name="${Date}*"/>
        </dirset>
    </resourcecount>


    <copy todir="${target}/${Date}${Run}/">
      <fileset dir="${source}">
        <include name="**/*"/>
      </fileset>
    </copy>

    <!-- rest goes here -->
</target>

resourcecount 任务很神奇。在 dirset 中,所有带有日期和可选编号的目录都被选中。这是 运行

的值

希望对您有所帮助。