문제

나는 단지 알고 싶다 :

마지막 수정이 오늘이 아닌 경우 'log.txt'를 삭제하려면 어떻게해야합니까?

배치 파일로.

나는 단지 여기서 1 파일에 대해 이야기하고 있습니다!

도움이 되었습니까?

해결책

당신이 사용할 수있는 forfiles:

forfiles /D -1 /M log.txt /C "cmd /c del @file"

다른 팁

PowerShell은 배치를 교체해야합니다.

if ((dir log.txt).LastWriteTime -lt [datetime]::today) { del log.txt }

불행히도 당신은 강력하고 일반적인 방식으로 이것을 할 수 없습니다 (*).

PowerShell, Cygwin, UNIX 도구는 대상 기계에 설치 될 수 있다면 완벽한 솔루션입니다.

나는 와일드 카드와 일수로 경로를 취하는 작은 유틸리티 프로그램을 작성하고 지정된 일보다 오래된 경로와 일치하는 모든 파일을 삭제합니다. 내 환경에서 이것은 타사 패키지를 설치하는 것보다 더 편리했습니다.

(*) 지역 환경의 짧은 날짜 형식에 세기가 포함 된 한 (예 : 오늘날의 수정 날짜) 다음은 특정 사례에 대해 작동합니다 (즉, 10 자입니다). 그러나 그것은 N 날 동안 일반화되지 않으며, 이런 종류의 컴퓨터의 지역 설정에 의존하는 것을 좋아하지 않습니다.

for %%i in (log.txt) do SET FILETIME=%%~ti
IF NOT "%FILETIME:~0,10%" == "%DATE%" DEL /f log.txt

배치는 단순한 것을 매우 복잡하게 만듭니다. Cygwin을 사용하거나 Unix 도구를 설치할 수있는 경우 다음과 같은 작업을 고려하십시오.

find log.txt -mtime +1 -exec rm {} \;

업데이트
그럴 수있는 것을 찾았습니다 유용한 순수한 배치를 사용하여. 이를 수정하고 귀하의 요구에 맞게 조정할 수 있어야합니다.

그 가치에 대해 jscript 또는 vbscript를 사용할 수 있습니다. 이 스크립팅 언어는 모두 90 년대 중반부터 MS 플랫폼에 설치되었습니다.

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