nAnt Deleting files older than 7 days old

后端 未结 2 1624
北海茫月
北海茫月 2021-02-09 14:33

I would like to create a target that cleans log files older than 7 days old in a specific folder. I get an error when I try to put in a \"date\" element inside a fileset. How ca

相关标签:
2条回答
  • 2021-02-09 15:22

    What about something like:

    <tstamp>
        <format property="last.week" pattern="MM/dd/yyyy hh:mm" locale="en,UK" offset="-7" unit="day"/>
    </tstamp>
    <echo>Delete backups before ${last.week}</echo>
    <delete>
        <fileset dir="${dst.dir}">
            <date datetime="${last.week}" when="before"/>
        </fileset>
    </delete>
    

    It seems to work for me :-)

    0 讨论(0)
  • 2021-02-09 15:34

    I don't see any documentation for using the "date" element. You might consider something like this:

    <fileset id="thelogs" basedir="${StageIISRoot}/MySite/App_Data/ErrorLog">
        <include name="*.xml" />
    </fileset>
    

    And then reference that fileset later in a loop that checks the file date and deletes:

    <foreach item="File" property="filename">
        <in>
            <items refid="thelogs" />
        </in>
        <do>
            <if test="${timespan::get-days(datetime::now() - file::get-last-write-time(filename)) >= 7}">
                <delete file="${filename}" />
            </if>
        </do>
    </foreach>
    
    0 讨论(0)
提交回复
热议问题