특정 시간 이전/이후의 파일 일괄 삭제하는 방법, 오래된 파일 일괄 삭제 프로그램.
ForFiles.exe
윈도우 xp 에서는 안된다.ㅠ
윈도우 7에서는 되는것으로 확인
REM------------------------------
REM-- 30일 이상 지난 파일 삭제
REM------------------------------
forfiles /p "d:\db_backup" /s /m *.dmp /d -30 /c "cmd /c del @path"
------------------------------------
-- 참고
forfiles
/p "경로"
/s 하위폴더를 포함하여 검색
/m 검색할 단어
/d 날짜(-30 은 30일 이전까지)
/c 명령어
-- 명령어 관련
@file -- 파일 이름 반환
@fname -- 확장자 없이 파일명만 반환
@ext -- 확장자만 반환
@path -- 전체경로 반환
@relpath -- 상대경로 반환
@isdir -- 디렉토리면 "true" 파일이면 "false" 반환
@fsize -- 파일 사이즈 반환
@fdate -- 최종수정일 반환
@ftime -- 최종수정시간 반환
-- 명령어 해석
forfiles /p "d:\db_backup"
/s
/m *.dmp
/d -30
/c "cmd /c del @path"
d:\db_backup 폴더에서
하위폴더를 포함하여
*.dmp 중에서
오늘부터 30일 이전 파일을 검색해서
해당 경로의 파일을 삭제
----------------------------------------------------------------------------------------------------
친절히 파일은 첨부하도록 한다.
혹시 불안하다면 직접 bat 파일 생성해도 좋다.
스케줄러 등록해서 사용하는건 다른 블로그를 검색해 보도록 한다!
----------------------------------------------------------------------------------------------------
만든 이유
----------------------------------------------------------------------------------------------------
오라클 db 백업 용 pc 를 하나 만들었는데(일반 데스크톱 컴퓨터)
백업 파일 하나가 3기가쯤....
어쩔수 있나... 백업도 한계가 있는법!
삭제 해야지...ㅠㅠㅠ
----------------------------------------------------------------------------------------------------
첨부파일 수정
----------------------------------------------------------------------------------------------------
경로 / 파일 확장자만 수정하면됨
ex) d: 와 하위폴더에 있는 30일 지난 파일을 모두 삭제하겠츰
forfiles /p "d:\" /s /m *.* /d -30 /c "cmd /c del @path"
Forfiles 를 사용하면, 특정 폴더내에 존재하는 특정파일을 마지막 수정한 날짜를 기준으로 삭제 가능하다.
cmd에서 forfiles /? 치면 명령어가 나온다.
예를 들면,
forfiles /p 경로 /s 하위포함 /m 필터 /d 기준날짜 /c 명령어 형식이며
forfiles /p C:\Temp /S /M *.txt /d -2015-05-06 /c "cmd /c del @file"
C:\Temp 폴더 안에 하위 폴더 포함하여
마지막 수정 날짜가 2015.05.06일과 같거나 이전의 모든 파일을 삭제.
하지만... 도스 명령어를 매번 사용하기 귀찮으니.
프로그램을 만들었다.
위에 첨부한 파일(윈폼으로 제작했다. .NET 4.0 이상이 필요하다.) 을 다운받아서 실행시킬 수 있다.
1. 대상 폴더
정리(삭제)해야할 파일들이 위치하는 폴더를 지정한다.
윈도우즈 시스템 폴더가 포함되거나, C:\, D:\ 같은 최상위 폴더가 선택 안되도록 해놨다.
2. 파일 삭제 기간
지정된 날짜와 마지막 수정날짜가 빠르거나 같은 파일을 삭제한다.
따라서 위 그림에서는 5월 6일까지의 파일이 삭제된다는 의미이다.
현재 날짜를 기준으로 선택 시에는 마지막 수정 날짜가 현재 날짜에서 DD 일을 뺀 날짜보다 작거나 같은 파일을 삭제한다.
만약 0을 쓰면 현재 날짜까지의 파일이 모두 삭제된다는 의미이다.
3. 기타 설정
하위 폴더 포함에 체크하면 선택된 대상 폴더의 하위 폴더에 존재하는 파일까지 모두 삭제한다.
단, 폴더는 안지워 진다. 폴더 구조는 그대로 유지한다.
삭제할 확장자 지정
지정하지 않으면 모든 파일이 삭제된다.
지정하면 폴더에 존재하는 특정 파일만 지워진다.
*.txt : 폴더내의 모든 텍스트 파일이 삭제된다.
*.xlsx : 폴더내의 모든 엑셀 파일 삭제
*.exe : 모든 exe 파일이 삭제된다
*.jpg : 모든 jpg 파일이 삭제된다.
... 이 외에도 사용자가 확장자 명을 지정하여 삭제할 수 있다.
[주의사항]
도스 명령어를 이용하는 삭제이므로, 휴지통을 거치지 않고 바로 삭제된다.
따라서... 한번 지워진 파일은 복원하기 힘들다.
반드시. 주의에 주의를 거듭해서 삭제해야 하며.
본 프로그램 이용 시 발생하는 모든 문제에 대해서 삽질창고는 책임지지 않는다.
출처: http://fallingstar.tistory.com/148 [삽질창고]