ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 윈도우의 오래된 파일, 폴더 정리
    Operating System/PC - Windows & Mac 2018.10.16 10:34



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



    몇일 이상 지난 파일을 지우기 위해 필요한 명령어


    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 파일을 정리하거나 오래된 파일을 지우고 정리하는데 유용하게 사용합니다.


    댓글 0

Designed by black7375.

티스토리 툴바