문제

특정 폴더에서 7 일 이상 된 로그 파일을 정리하는 대상을 만들고 싶습니다. 파일 세트 내부에 "날짜"요소를 넣으려고 할 때 오류가 발생합니다. 이것에 대해 어떻게 갈 수 있습니까?

<delete>
    fileset basedir="${StageIISRoot}/MySite/App_Data/ErrorLog">
        <date datetime="${datetime::now() - timespan::from-days(7)}" when="before"/>
        <include name="*.xml" />
    </fileset>
</delete>
도움이 되었습니까?

해결책

"날짜"요소를 사용하기위한 문서가 표시되지 않습니다. 다음과 같은 것을 고려할 수 있습니다.

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

그런 다음 파일 날짜를 확인하고 삭제하는 루프에서 나중에 파일 세트를 참조하십시오.

<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>

다른 팁

다음과 같은 것은 어떻습니까 :

<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>

그것은 나를 위해 일하는 것 같습니다 :-)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top