2️⃣ 실수 시 되돌리기 전략
중요한 포인트부터 솔직하게 말하면:
PowerShell로 지워버린 파일은 휴지통을 안 거치면
_스크립트만으로는 되돌리기 거의 불가능_에 가깝고,
이름 변경/이동은 “미리 준비”를 해두면 꽤 되돌릴 수 있음.
그래서 "되돌리기 전략"은 대부분
👉 “실행 전 준비” + “실행 후 패턴으로 역변환” 구조입니다.
2-1. 작업 전에 “현재 상태 백업” 찍어두기 (강력 추천)
🔹 작업 전 파일 목록 CSV로 저장
Get-ChildItem -Recurse -File | Select-Object FullName, Name, LastWriteTime | Export-Csv ".\backup_$(Get-Date -Format 'yyyyMMdd_HHmmss').csv" -NoTypeInformation
- 현재 폴더 + 하위 폴더 전체 구조를 CSV로 저장
- 나중에
- “원래 파일 이름이 뭐였지?”
- “원래 어느 폴더에 있었지?”
확인할 수 있는 스냅샷 역할
2-2. “한 번의 규칙”으로 바꿨다면, “반대 규칙”으로 되돌리기
예를 들어:
① 앞에 OK_를 붙였을 때
# 적용했던 것 Get-ChildItem | Rename-Item -NewName { "OK_" + $_.Name } # 되돌리기 Get-ChildItem | Rename-Item -NewName { $_.Name -replace "^OK_", "" }
② 뒤에 _최종 붙였을 때
# 적용 Get-ChildItem | Rename-Item -NewName { $_.BaseName + "_최종" + $_.Extension } # 되돌리기 Get-ChildItem | Rename-Item -NewName { $_.Name -replace "_최종(\.[^.]+)$", '$1' }
③ 괄호 번호를 없앴던 경우
반대로 괄호 번호를 다시 만들기는 거의 불가능하니,
이런 건 작업 전에 CSV 백업을 꼭 찍어두는 게 안전합니다.
2-3. 폴더 이동 되돌리기
🔹 날짜별/확장자별로 하위 폴더에 옮겨버렸을 때
예를 들어 위에서처럼 2025-01, 2025-02로 나눴다면,
다시 상위 폴더로 올리고 싶을 때:
Get-ChildItem -Recurse -File | Move-Item -Destination (Get-Location) -WhatIf
- 먼저 -WhatIf로 결과 확인 필수
- 괜찮으면 -WhatIf 제거 후 실행
단,
- 상위 폴더에 동일 파일 이름이 이미 있으면 덮어쓰거나 에러 발생 가능 → 주의.
2-4. 삭제 관련 되돌리기
1) 휴지통으로 보낸 경우
- PowerShell로 Remove-Item 사용 대신
되도록 탐색기에서 Delete 키로 삭제 → 휴지통 복구 가능.
2) PowerShell Remove-Item로 바로 삭제한 경우
- 휴지통 안 거치고 지워짐 →
스크립트로 되돌리기 거의 불가능. - 복구 가능성:
- 윈도우 “이전 버전” (볼륨 섀도우 카피, 파일 기록 켜져 있을 때)
- OneDrive/Google Drive/Dropbox 같은 클라우드 동기화 서비스의 버전 관리/휴지통
2-5. “큰 사고” 예방을 위한 최소 수칙 체크리스트
- 반드시 복사본 폴더에서 먼저 테스트
- 첫 실행은 무조건 -WhatIf 포함
- Remove-Item(삭제)은
가능하면 안 쓰거나, 테스트 후 휴지통 삭제 방식만 사용 - 한 번에 여러 동작을 하지 말고
- ① 이름 변경
- ② 폴더 이동
- ③ 정리
단계별로 나눠서 실행
- 중요한 폴더는
- 주기적으로 CSV 백업
- 또는 클라우드/외장하드 백업 병행
'IT,전자기기,PC,모바일' 카테고리의 다른 글
| PowerShell 스크립트 “한 줄 실행” 모음 (0) | 2025.12.09 |
|---|---|
| PowerShell로 대량 리네임 · 정리 자동화 (0) | 2025.12.09 |
| 윈도우 탐색기 느려질 때 최적화 팁 (0) | 2025.12.09 |
| 마우스 없이 탐색기 100% 쓰는 흐름 (0) | 2025.12.09 |
| 대량 파일 정리 (정렬 · 리네임) 실전 팁 (0) | 2025.12.09 |