이전 글에서 goinfre라는 폴더를 보고,
이게 뭐지? 라는 분들도 있을 것 같습니다.
42 seoul 프로그램을 할 때 자동 삭제되는 폴더 이름이 goinfre였는데.. 프랑스어로 탐식가? 아귀?
작명 센스가 좋네요.
컴퓨터를 사용하다보면 점점 파일이 쌓여가고 지저분해지기 때문에, 주기적으로 지워주는 폴더가 필요하다고 생각했고
42를 할 때 goinfre라는 폴더가 그리웠습니다. 청소를 대신 해주는 사람이 있는 느낌이었거든요.
그래서, windows의 작업 스케줄러를 이용해서 goinfre를 구현하고자 합니다.
bat 파일 만들기
작업을 수행하기 전에 어떤 작업을 수행할지를 정해야합니다.
작업을 배치파일로 한데 모아주면 편한데, 저는 배치파일을 작성한 경험이 거의 없습니다. GPT에게 물어봐서,
@echo off
cd C:\Users\neutr\goinfre
del /Q *.*
for /D %%X in (*) do rd /S /Q "%%X"
특정 폴더 내의 파일과 폴더를 모두 삭제하는 명령어입니다.
@echo off # 명령어 출력 없음
cd C:\Users\neutr\goinfre #goinfre 폴더 경로
del /Q *.* #Quite mode로 모든 파일 삭제
for /D %%X in (*) do rd /S /Q "%%X" #Quite 모드로 폴더 내의 모든 폴더에 대해 반복문을 수행하며 해당 폴더와 하위 폴더 및 파일을 삭제함.
주석을 달아두었습니다.
이 내용을 메모장으로 열어서, 배치파일 형태로 저장하고, 적절한 곳에 위치시킵니다.
작업 스케줄러
윈도우 작업 스케줄러를 검색해서 실행합니다.
화면에서
[기본 작업 만들기] 를 클릭하여 작업을 만듭니다.
이름이나 설명은 마음대로 짓고 얼마 간격으로 설정할지도 적습니다.
저는 매 주로 했었습니다.
작업은 프로그램 시작으로 하여 만들었던 배치파일을 실행하도록 합니다.
bat 파일을 불러옵니다. 그 다음 바로 넘어가서 [마침] 누르면 설정이 끝납니다.
이제 goinfre를 사용할 수 있습니다만. 매 주 정해진 시간으로 일괄 삭제하기보다. 수정 일자로 판별하는게 좋을 것 같아서 저는 배치파일 내용을 이후 수정해야겠습니다.
@echo off
set "targetPath=C:\Users\neutr\goinfre"
forfiles /P "%targetPath%" /S /D -5 /C "cmd /c if @isdir==TRUE (rd /s /q @path) else (del /f /q @path)"
위 작업을 매일 반복하도록 합니다.
rm -rf 가 없는 불편함을 if문으로 해결합니다 ..