使用 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 中,所有带有日期和可选编号的目录都被选中。这是 运行
的值
希望对您有所帮助。
我目前有一个批处理文件,可以将一些测试结果复制到一个目录中。该目录将有一个日期 (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 中,所有带有日期和可选编号的目录都被选中。这是 运行
的值希望对您有所帮助。