티스토리 뷰
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에서 모두 사용할 수 있습니다. 다만 잘못된 명령을 입력하면 원하지 않는 파일이 삭제될 수 있으므로 반드시 임시 폴더에서 충분한 테스트 후 작업 스케줄러에 등록하시는 것이 좋습니다.
Windows 기본 다운로드 폴더에는 사용자가 인터넷에서 다운로드한 각종 파일이 저장됩니다. 그러나 파일을 사용하고 관리하지 않으면 불필요한 파일이 중복으로 저장되는 등 한정된 디스크 드라이브 공간을 낭비할 수 있습니다. 따라서 '저장소 센스' 기능을 사용하여 30일 이상 변경되지 않은 파일을 정리하도록 구성할 수 있습니다.
다만 저장소 센스에서 수동으로 다른 위치를 추가할 수 있는 옵션은 없기 때문에, 사용자가 원하는 경로에 파일이 많은 폴더가 있고 특정 날짜보다 오래된 파일을 삭제하여 정리하려는 경우 이용할 수 없습니다.
만약 사용자가 지정한 폴더 및 파일 중 X일이 지난 파일을 삭제하고 싶다면 PowerShell을 이용하여 지난 파일을 삭제할 수 있습니다. 오래된 파일을 지정하여 삭제하고 싶다면 다음 단계를 이용할 수 있습니다.
먼저 오래된 파일을 사용자가 지정한 날짜가 지난 다음 자동으로 삭제할 수 있도록 설정하기 앞서 PowerShell에서 테스트를 진행해봅니다. 임시 폴더에 텍스트 및 워드 문서 파일을 여러 개 준비합니다.
사용자가 지정한 날짜, 예를 들어 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"를 입력하여 실행할 수도 있습니다.
"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은 수정한 날짜를 지정하는 것으로, 사용자가 원하는 일 수로 변경하시면 됩니다.
PowerShell 명령 수행 후 해당 폴더를 살펴보면 "수정한 날짜"가 "120일"이 지난 파일만 제거된 것을 확인할 수 있습니다.
2 작업 스케줄러를 사용하여 X일 지난 파일을 자동으로 삭제
충분한 테스트가 끝났다면 컴퓨터의 특정 폴더에서 지정된 시간이 지난 파일을 자동으로 삭제할 수 있도록 작업 스케줄러에 예약 작업을 등록하여 매달, 매주 또는 매일 PowerShell 스크립트를 수행할 수 있도록 등록합니다.
만약 작업 스케줄러에 작업을 예약하지 않는다면 사용자가 PowerShell을 열고 명령을 수동으로 실행해야 합니다.
먼저 작업 스케줄러에 등록하려는 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 기본 다운로드 폴더, 휴지통 등 저장소 센스에서 지원하지 않는 경로에서 사용하지 않는 오래된 다운로드 파일 관리가 어려운 경우 자동으로 삭제하도록 설정할 수 있습니다.
'IT > How to' 카테고리의 다른 글
윈도우11 'Windows 사진 뷰어'를 다시 가져오는 방법 (5) | 2022.04.14 |
---|---|
윈도우11 Linux용 Windows 하위 시스템 (WSL2)을 설치하는 방법 (0) | 2022.04.13 |
윈도우11 Home Microsoft 계정 없이 로컬 계정으로 설치하기 (11) | 2022.04.13 |
윈도우11 Build 22593 또는 모든 버전 ISO 파일 다운로드 방법 (UUP Dump) (0) | 2022.04.11 |
윈도우10 PC 뷰어로 갤럭시 모션 포토를 바로 볼 수 있는 방법 (0) | 2022.04.07 |
윈도우10 '스티커 메모' Android 스마트폰 동기화 및 사용 방법 (0) | 2022.04.07 |
윈도우10 달력(일정 앱)에 공휴일을 표시하는 방법 (0) | 2022.04.07 |
ADB Device 'unauthorized' 해결 방법 ($ADB_VENDOR_KEY is not set) (0) | 2022.04.06 |