티스토리 뷰

Windows 로고

HowTo - PowerShell을 사용하여 X일이 지난 파일을 자동으로 삭제하는 방법

 Windows 10에서 '저장소 센스'는 디스크 공간이 부족할 때 자동으로 공간을 확보하는 기능입니다. 이 기능을 통해 정크 시스템 파일, 휴지통 및 다운로드 폴더에 오래된 파일을 제거함으로써 공간을 자동으로 확보할 수 있습니다.

 

[IT/How to] - OneDrive 로컬 디스크 공간 부족시, 온라인 전용 자동 전환 (저장소 센스)

 

OneDrive 로컬 디스크 공간 부족시, 온라인 전용 자동 전환 (저장소 센스)

HowTo - OneDrive 온라인 전용 파일 자동 전환 설정 방법  윈도우10 저장소 센스 기능을 이용하여 더 이상 로컬 PC 저장 공간에서 사용하고 있지 않은 파일을 온라인 전용 파일로 자동 전환하여, 사용

forbes.tistory.com

 그러나 이 기능은 저장 공간을 관리할 수 있도록 도움을 받을 수 있지만 제한적이며, 오래된 파일을 모니터링하고 삭제하기 위해 수동으로 다른 위치를 추가하는 옵션을 제공하지 않습니다.

 

 따라서 중요하지 않은 파일을 다른 위치에 저장하는 경우 Windows PowerShell 및 작업 스케줄러 앱을 사용하여 사용자가 지정한 일 수보다 오래된 폴더의 파일을 모니터링하고 자동으로 제거할 수 있습니다.

작업 스케줄러에 PowerShell 배치 파일 등록, X일 지난 파일 자동 삭제하기

 PowerShell을 사용하여 특정 날짜가 지난 파일을 삭제하는 방법은 Windows 10 및 11에서 모두 사용할 수 있습니다. 다만 잘못된 명령을 입력하면 원하지 않는 파일이 삭제될 수 있으므로 반드시 임시 폴더에서 충분한 테스트 후 작업 스케줄러에 등록하시는 것이 좋습니다.

 

 

 

1 PowerShell을 통해 X일이 지난 파일 삭제

 Windows 기본 다운로드 폴더에는 사용자가 인터넷에서 다운로드한 각종 파일이 저장됩니다. 그러나 파일을 사용하고 관리하지 않으면 불필요한 파일이 중복으로 저장되는 등 한정된 디스크 드라이브 공간을 낭비할 수 있습니다. 따라서 '저장소 센스' 기능을 사용하여 30일 이상 변경되지 않은 파일을 정리하도록 구성할 수 있습니다.

 

 다만 저장소 센스에서 수동으로 다른 위치를 추가할 수 있는 옵션은 없기 때문에, 사용자가 원하는 경로에 파일이 많은 폴더가 있고 특정 날짜보다 오래된 파일을 삭제하여 정리하려는 경우 이용할 수 없습니다.

 

 만약 사용자가 지정한 폴더 및 파일 중 X일이 지난 파일을 삭제하고 싶다면 PowerShell을 이용하여 지난 파일을 삭제할 수 있습니다. 오래된 파일을 지정하여 삭제하고 싶다면 다음 단계를 이용할 수 있습니다.

 

파일 탐색기

 먼저 오래된 파일을 사용자가 지정한 날짜가 지난 다음 자동으로 삭제할 수 있도록 설정하기 앞서 PowerShell에서 테스트를 진행해봅니다. 임시 폴더에 텍스트 및 워드 문서 파일을 여러 개 준비합니다.

 

 

BulkFileChanger 파일 수정한 날짜 변경

 사용자가 지정한 날짜, 예를 들어 30일, 60일, 120일 등 사용자가 지정한 일 수가 지난 파일을 정상적으로 삭제하는지 테스트하기 위하여, "BulkFileChanger" 프로그램 사용하여 "수정한 날짜"를 변경합니다.

 

[IT/How to] - 윈도우10 사진 등 파일 만든 날짜, 수정한 날짜, 액세스한 날짜 변경 방법

 

윈도우10 사진 등 파일 만든 날짜, 수정한 날짜, 액세스한 날짜 변경 방법

HowTo - 윈도우 파일 만든 날짜, 수정한 날짜 등 변경하는 방법  사진 파일을 단순히 복사+붙여넣기로 옮기는 경우 파일의 생성 날짜가 변경되는 경우가 있습니다. 물론 휴대폰으로 찍은 사진은

forbes.tistory.com

 참고로 해당 과정은 잘못된 명령을 입력하여 잘못된 파일이 삭제되는 등 혹여나 발생할 수 있는 실수를 줄이기 위한 테스트 과정으로 반드시 필요한 절차는 아닙니다.

 

 

윈도우 터미널 실행

 윈도우 시작 버튼을 누르고 Windows PowerShell을 검색하여 결과를 "관리자 권한으로 실행" 옵션을 선택하거나, 키보드 단축키 Win + R 키를 누르고 "powershell" 입력 후 Ctrl + Shift + Enter 키 조합으로 PowerShell을 관리자 권한으로 실행할 수 있습니다.

 

 만약 Windows Terminal을 이용하려는 경우 PowerShell 대신 실행 대화 상자에서 "wt"를 입력하여 실행할 수도 있습니다.

 

 

PowerShell 파일 삭제

 "D:\TEST" 임시 폴더에서 지난 120일 동안 수정되지 않은 파일을 삭제하려면 다음 명령을 입력하고 Enter 키를 누릅니다.

 

Get-ChildItem –Path "D:\TEST" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-120))} | Remove-Item

 

 해당 명령어는 별도의 첨부 파일을 다운로드하여 사용할 수 있습니다. 텍스트 파일에 입력된 명령어 중 "D:\TEST" 경로 변경 및 ".AddDays(-120)" 부분의 -120은 수정한 날짜를 지정하는 것으로, 사용자가 원하는 일 수로 변경하시면 됩니다.

CMD.txt
0.00MB

 

 

120일 지난 파일 삭제

 PowerShell 명령 수행 후 해당 폴더를 살펴보면 "수정한 날짜""120일"이 지난 파일만 제거된 것을 확인할 수 있습니다.

 

 

2 작업 스케줄러를 사용하여 X일 지난 파일을 자동으로 삭제

 충분한 테스트가 끝났다면 컴퓨터의 특정 폴더에서 지정된 시간이 지난 파일을 자동으로 삭제할 수 있도록 작업 스케줄러에 예약 작업을 등록하여 매달, 매주 또는 매일 PowerShell 스크립트를 수행할 수 있도록 등록합니다.

 

 만약 작업 스케줄러에 작업을 예약하지 않는다면 사용자가 PowerShell을 열고 명령을 수동으로 실행해야 합니다.

 

Remove.ps1 스크립트 작성

 먼저 작업 스케줄러에 등록하려는 PowerShell 스크립트를 생성해야 합니다. 메모장을 열고 다음 명령을 입력하고 [파일(F) > 다른 이름으로 저장(A)] 메뉴 선택 후 "Remove.ps1"와 같이 사용자가 식별하기 쉬운 이름 및 확장자를 사용하여 파일을 저장합니다.

 

Get-ChildItem –Path "C:\PATH" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-DATE))} | Remove-Item

 

 해당 명령을 직접 입력하여 저장하거나, 위 테스트 단계에서 첨부한 텍스트 파일을 다운로드하여 "PATH""DATE"만 변경하여 FILENAME.ps1 형식의 파일로 저장합니다.

 

 

작업 스케줄러 실행

 파일 삭제 프로세스를 자동화하기 위해 작업 스케줄러를 사용하여 지정된 주기로 PowerShell 명령을 실행하는 예약 작업을 생성해야 합니다. 키보드 단축키 Win + R 키를 누르고 실행 대화 상자에서 "control schedtasks" 입력 후 Enter 키를 눌러 작업 스케줄러 앱을 실행합니다.

 

 

작업 스케줄러 라이브러리 > 새 폴더 생성

 작업 스케줄러의 왼쪽 창에서 "작업 스케줄러 라이브러리" 폴더를 마우스 오른쪽 버튼으로 클릭하고 [새 폴더(N)] 옵션을 클릭합니다. "새 폴더의 이름 입력" 창에서 생성하려는 폴더 이름을 입력하고 [확인]을 클릭합니다.

 

 별도의 폴더 생성 없이 예약 작업을 등록할 수 있지만, 작업을 체계화하고 시스템 작업과 사용자 스크립트를 분리된 상태로 유지하기 위해 새 폴더를 사용하는 것이 좋습니다.

 

 

작업 만들기

 새롭게 생성한 폴더를 마우스 오른쪽 버튼으로 클릭하고 [작업 만들기(R)] 옵션을 선택합니다.

 

 

새 작업 만들기

 "일반" 탭에서 "이름(M)" 입력 상자에 작업 이름을 입력하고, "보안 옵션" 섹션에서 사용자가 로그온하지 않아도 자동으로 파일 삭제 작업이 수행될 수 있도록 "사용자의 로그온 여부에 관계없이 실행(W)" 옵션을 선택합니다.

 

 또한 "암호를 저장하지 않습니다. 이 작업에서는 로컬 컴퓨터 리소스에만 액세스할 수 있습니다(P)" 옵션을 선택 취소합니다.

 

 

트리거 새로 만들기

 "트리거" 탭에서 [새로 만들기(N)] 버튼을 클릭합니다.

 

 

주기 및 시작 설정

 "새 트리거 만들기" 창에서 "작업 시작(G)"[예약 상태]를 선택하고, "설정" 섹션에서 작업을 실행할 시기를 지정합니다. 한 번, 매일, 매주, 매월 중 하나를 선택하고 "시작" 설정을 지정합니다.

 

 예를 들어 "매주(W)" 옵션을 선택했다면 매 1주, 2주 등 선택한 주기의 주마다 실행할 요일을 선택합니다. 위 예시 화면에서 지정한 옵션은 매주 일요일마다 파일 제거 작업을 수행하게 됩니다.

 

 

동작 새로 만들기

 "동작" 탭에서 [새로 만들기(N)] 버튼을 클릭합니다.

 

 

새 동작 만들기 > 프로그램/스크립트 및 인수 추가 옵션 입력

 "새 동작 만들기" 창에서 "동작(I)" 옵션은 [프로그램 시작] 선택, "설정" 섹션에서 "프로그램/스크립트(P)" 입력 상자에 "powershell.exe" 명령을 입력합니다. 다음으로 "인수 추가(옵션)(A)"에서 다음 명령을 입력하고 [확인] 버튼을 클릭합니다.

 

 -ExecutionPolicy Bypass 'PATH\FILENAME.ps1'

 

 위 명령어 중 "PATH\FILENAME.ps1" 부분은 파일을 삭제하기 위해 이전에 만든 PowerShell 스크립트 위치 및 파일을 사용합니다. 예를 들어 "D:\TEST" 폴더에 생성한 "Remove.ps1" 파일을 사용한다면 인수 추가 입력 상자에 파일의 절대 경로를 등록하면 됩니다. 따라서 "D:\TEST\Remove.ps1"을 입력하면 됩니다.

 

 

작업의 동작에 영향을 주는 추가 설정 지정

 "설정" 탭에서 다음 옵션을 모두 선택한 다음 [확인] 버튼을 클릭합니다.

 

  • 요청 시 작업이 실행되도록 허용(L)
  • 예약된 시작 시간을 놓친 경우 가능한 대로 빨리 작업 시작(S)
  • 작업이 실패하는 경우 다시 시작 간격(T)

 새 작업 만들기 단계가 모두 완료되면 [확인] 버튼을 클릭하여 작업 스케줄러의 예약 작업 만들기를 완료합니다.

 

 

작업 스케줄러 계정 정보 입력

 작업 스케줄러에 새 작업을 등록하기 위해 사용자 계정 정보를 입력합니다.

 

 

작업 스케줄러 새 작업 등록 완료

 모든 단계를 완료하면 사용자가 작성한 PowerShell 명령에서 지정한 날짜보다 오래된 파일을 삭제하는 일정에 따라 PowerShell 스크립트가 실행됩니다. Windows 기본 다운로드 폴더, 휴지통 등 저장소 센스에서 지원하지 않는 경로에서 사용하지 않는 오래된 다운로드 파일 관리가 어려운 경우 자동으로 삭제하도록 설정할 수 있습니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함