Forfiles.exe 명령어 사용하여 파일 유지 관리
매일 쌓여가는 백업 파일 또는 로그파일을 정기적으로 관리 하고 싶을 때
Forfiles 명령을 사용 하면 아주 유용합니다.
왜냐? Forfiles 명령은 날짜 변수를 이용할 수 있고
이동 또는 삭제 옵션을 한 줄에 표현 살 수 있습니다.
아래 와 같이 백업 파일이 날짜 별로 있다고 가정합니다.
이 파일 들을 일주일 치만 남기고 특정 폴더로 이동 또는 삭제 할 수 있습니다.
forfiles /p “d:\webdata\arch” /s /m *.arc /d -3 /c “cmd /c del @path”
위 그림과 같이 날짜를 지정해서 삭제를 할 수 있습니다.
*옵션 설명
-p : 폴더 지정
-m : 파일 지정
-d : 날짜 지정
-c : 실행할 명령 지정.
– S : 서브디렉토리까지 포함해서 검색
파일을 이동할 경우는 아래와 같이 뒤의 명령 부분을 바꾸 줍니다.
forfiles /p “d:\oradata\arch” /s /m *.arc /d -3 /c “cmd /c echo copy: @file && move @file E:\backupdata
일주일 치만 보관하고 삭제해 보겠습니다.
>forfiles /p “E:\ImageBackup\Wowza” /s /m *.* /d -7 /c “cmd /c del @path”
위 그림 처럼 일주일 이전의 파일은 삭제 되는 것을 확인 할 수 있습니다.
frofiles 명령어 사용 예제
D:\bakcup의 7일 지난 log파일 삭제
forfiles /p D:\bakcup /M *.log /D -7 /C “CMD /C del @file” |
D:\bakcup의 7일 지난 log파일을 E:\backcup로 이동
forfiles /P D:\bakcup /S /M *.log /D -7 /C “cmd /c echo copy: @file && move @file E:\backcup |
D:\bakcup의 7일 지난 폴더를 폴더명으로 압축한다.
forfiles /P D:\bakcup /D -7 /C “cmd /c zip -r @file.zip @file” |
D:\bakcup의 7일 지난 폴더를 삭제한다.
forfiles /P D:\bakcup /D -7 /C “cmd /c rmdir /s /q @file” |
D:\bakcup의 에 한달 전에 생성된 log파일의 경로를 확인한다.
forfiles /P D:\bakcup /S /M *.log /D -30 /C “cmd /c @echo @path” |
Command 명령 문자열에서 사용할 수 있는 변수 목록
변수 | 설명 |
file | 파일 이름 |
@fname | 확장명을 제외한 파일 이름 |
@ext | 파일 확장명 |
@path | 파일의 전체 경로 |
@relpath | 파일의 상대 경로 |
@isdir | 파일 형식이 디렉터리이면 TRUE이고 그렇지 않으면 FALSE입니다. |
@fsize | 파일 크기(바이트) |
@fdate | 마지막으로 수정한 파일의 날짜 스탬프 |
@ftime | 마지막으로 수정한 파일의 시간 스탬프 |