윈도우의 오래된 파일, 폴더 정리



 

윈도우에서 필요없는 로그나 사용하지 않는 오래된 파일을 정리 할때 사용하는 명령어 입니다.
몇일 이상 지난 파일을 지우기 위해 필요한 명령어

forfiles /p “D:\log” /s /d -30 /c “cmd /c @rmdir /s /q @path”

/d 옵션 뒤에 -30 은 30일 이상 지난 폴더와 내용을 삭제하라는 뜻입니다.

 

기본식

FORFILES [/P pathname] [/M searchmask] [/S] [/C command] [/D [+ | -] {yyyy-MM-dd | dd}]

 

옵션 목록

/P pathname 검색을 시작할 경로를 지정합니다.
현재 작업 디렉터리(.)가 기본 폴더입니다.

/M searchmask 검색 마스크에 따라 파일을 검색합니다.
‘*’이 기본 검색 마스크입니다.

/S 하위 폴더를 포함하도록 지정합니다. 예, “DIR /S”

/C command 각 파일에 실행할 명령을 지정합니다.
명령 문자열을 큰따옴표로 묶어야 합니다.

“cmd /c echo @file”이 기본 명령입니다.

명령 문자열에 다음 변수를 사용할 수 있습니다.
@file – 파일 이름을 반환합니다.
@fname – 확장명 없이 파일 이름을 반환합니다.
@ext – 파일의 확장명만 반환합니다.
@path – 파일의 전체 경로를 반환합니다.
@relpath – 파일의 상대 경로를 반환합니다.
@isdir – 파일 형식이 디렉터리인 경우 “TRUE”를 반환하고 파일인 경우 “FALSE”를 반환합니다.
@fsize – 파일의 크기(바이트)를 반환합니다.
@fdate – 파일을 마지막으로 수정한 날짜를 반환합니다.
@ftime – 파일을 마지막으로 수정한 시간을 반환합니다.

명령줄에 특수 문자를 포함하려면 0xHH 형식의 16진수 코드(예, 탭은 0x09)를
사용하십시오. 내부 CMD.exe 명령 앞에는 “cmd /c”를 사용해야 합니다.

/D date 지정한 날짜와 마지막 수정한 날짜가 늦거나 같은(+) 또는 빠르거나 같은(-) 파일을
찾습니다.
날짜 포맷은 “yyyy-MM-dd”입니다.
또한 마지막 수정한 날짜가 현재 날짜에 “dd”일을 더한 날짜보다 늦거나 같은(+) 또는
현재 날짜에서 “dd”일을 뺀 날짜보다 작거나 같은(-) 파일을 찾습니다.
유효한 “dd” 범위는 0에서 32768까지입니다.
부호를 지정하지 않으면 “+”가 기본값입니다.

/? 이 도움말 메시지를 표시합니다.

 

윈도우에서 직접 알려주는 사용예시

FORFILES /P C:\WINDOWS /S /M DNS*.*
– C:\WINDOWS 하위 디렉토리 중 DNS를 포함하는 모든 파일 삭제

FORFILES /S /M *.txt /C “cmd /c type @file | more”
– 현재위치의 모든 텍스트 파일의 내용을 보여줍니다.

FORFILES /P C:\ /S /M *.bat
– C:\ 하위 디렉토리 포함 모든 bat 파일을 삭제합니다.

FORFILES /D -30 /M *.exe /C “cmd /c echo @path 0x09 was changed 30 days ago”
– 현재 디렉토리에 있는 모든 실행 파일들중 30일 이전의 파일들을 “경로\1.exe was changed 30 days ago” 형식으로 표시

FORFILES /D 2001-01-01 /C “cmd /c echo @fname is new since Jan 1st 2001”
– 2001-01-01에 만들어진 파일을 확장자명 없이 출력

FORFILES /D +2015-3-21 /C “cmd /c echo @fname is new today”
– 2015-03-21 이후에 만들어진 파일을 @fname 뒤의 문장을 포함하여 출력

FORFILES /M *.exe /D +1

FORFILES /S /M *.doc /C “cmd /c echo @fsize”

FORFILES /M *.txt /C “cmd /c if @isdir==FALSE notepad.exe @file”

 

자동으로 오래된 파일을 로그로 기록하고, 삭제하는 배치파일 만들기

CMD 창을 띄우고 빈 파일을 만들고, 메모장으로 열어 다음 내용을 추가 해줍니다.

D:\> type NUL > D:\script\Delete_old.bat

D:\> notepad D:\script\Delete_old.bat

type NUL > D:\log\Delete_%DATE%.log
forfiles /p “D:\downloads” /s /m * /d -7 /c “CMD /c echo @path” >> Delete_%DATE%.log
forfiles /p “D:\downloads” /s /m * /d -7 /c “CMD /c @rmdir /s /q @path” >> Delete_%DATE%.log

다운로드 폴더에 있는 7일 이상된 파일을 로그로 남기고 삭제합니다.

해당 배치 파일은 작업 스케쥴러에 등록하여, 파일을 실행 하지 않아도 자동으로 매일 혹은 매주, 매달 같이 주기를 지정하여 자동으로 삭제 할 수 있습니다.

오래 쌓여서 보지 않는 LOG 파일을 정리하거나 오래된 파일을 지우고 정리하는데 유용하게 사용합니다.



You may also like...

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다