2015년 3월 20일 금요일

오래된 파일 지우는 윈도우 명령어 "forfiles"

오래된 파일 지우는 윈도우 명령어 "forfiles"


사실 forfiles 명령어는 오래된 파일을 지우는 명령어는 아니지만 옵션값을 잘 지정해주고 스케줄에 등록하면 편리하게 오래된 파일을 지울 수 있다는 점 때문에 많은 분들이 삭제 용도로 사용하시는 것 같습니다.
이 명령어는 옵션값을 많이 입력해야 하므로 쓰기 까다로운 점이 있지만 잘 쓰면 편하게 오래된 불필요한 파일들을 손쉽게 제거뿐만 아니라 다양한 용도로 사용할 수 있으니 잘 알아두시면 좋을 것 같습니다~!

1. 사용 방법

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

2. 옵션 목록

    /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까지입니다.
                        부호를 지정하지 않으면 "+"가 기본값입니다.

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

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

  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"

4. .bat 파일을 만들어서 실행


메모장을 열어서 스크립트를 입력합니다.


입력 후 다른 이름으로 저장을 누릅니다.


파일형식은 '모든 파일' 파일이름은 test.bat라고 적어서 bat 파일을 만들어주세요.
이제 만든 bat 파일을 실행시키면 입력해주었던 스크립트가 차례대로 실행됩니다.

이상~!


댓글 없음:

댓글 쓰기