[Windows] batch파일 이용해서 파일 자동으로 삭제하기

컴퓨터를 개발용도로 사용하다 보면 불필요한 로그 파일이나 트레이스 파일이 쌓일때 주기적으로 지워줘야 할때가 생긴다. 그럴때 파일을 삭제하는 배치파일을 만들어 작업스케줄러에 등록하면 자동으로 파일을 삭제되게 할 수 있다.

 

우선 배치파일을 아에 모르면 아래 포스팅을 참조하라

https://deftkang.tistory.com/142

 

파일삭제하는 batch파일 명령어 FORFILES

FORFILES /P 삭제할 파일 경로 /M 삭제할 파일 /D 며칠 지난거 삭제할 건지 /C 실제 삭제하는 명령어

 

사실 FORFILES는 단순히 파일을 어떤 명령어로 실행시키는 작업을 하는 것이다. 그 실행시키는 명령어는 /C 뒤에 정의되고 거기에 삭제하는 명령어를 써야 삭제가 된다.

 

사용예제

FORFILES /P D:\oradata\RBM2\admin\bdump /M *.trc /D -3 /C "cmd /c IF @isdir==FALSE (DEL @file) ELSE (RMDIR /Q /S @file)"

 

위 사용예제는 오라클 트레이스 파일을 삭제하기 위한 예제이다. 용량을 크게 잡아먹는 bdump가 생성돼 정기적으로 삭제 하게 하려고 만들었다.

 

/C 뒤에 진짜 실행시킬 명령어를 기입하는 것이다 cmd /c 로 시작하고 실행할 명령어를 쓴다.

IF @isdir==FALSE (DEL @file)는 만약 파일이 존재한다면 파일을 삭제하고 ELSE (RMDIR /Q /S @file)은 그게 아니라면 디렉토리를 삭제하라는 뜻이다 옵션 /Q 는 디렉토리 안의 하위 파일들을 다 삭제하는 것이고 /S 는 삭제하는 과정에서 문제가 생기지 않는다면 아무것도 묻지 말라는 옵션이다.  

 

이렇게 배치파일을 만들고 작업 스케줄러에 등록하면 매일 주기적으로 파일을 삭제해 더이상 신경을 안써도 된다.

 

 

 

참고 : https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/forfiles

 

forfiles

Windows Commands topic for **** -

docs.microsoft.com

참고 : https://www.colorconsole.de/console/ko/057.htm

댓글

Designed by JB FACTORY