티스토리 뷰

반응형

CSV 파일 조건에 따라 필요 없는 파일을 한꺼번에 삭제해야 할 때가 있다.
PowerShell로 손쉽게 자동화할 수 있지만,
실수로 중요한 파일까지 삭제하지 않으려면 삭제 전 사전 확인이 반드시 필요하다.


1. CSV에서 삭제 대상 파일 경로 추출한다

예를 들어 nes_famicom_7.csv 가 만들어졌을 때, 필요 기준(예: statusunmatched)에 맞는 행에서 파일 경로(전체 경로)를 뽑아
deletelist.txt로 저장한다.

Import-Csv "nes_famicom_7.csv" | Where-Object { $_.status -eq "unmatched" } | Select-Object -ExpandProperty "ROM Path" > deletelist.txt
  • ROM Path 컬럼에 전체 경로가 있어야 별도 경로 합성 없이 바로 쓴다.

2. 삭제 전 사전 확인 반드시 진행한다

2-1. 삭제 대상 샘플 미리 확인한다

Get-Content deletelist.txt | Select-Object -First 5
  • 삭제 리스트에서 일부만 미리 출력해, 파일 경로가 예상대로 추출됐는지 확인한다.

2-2. 실제로 삭제 가능한 파일만 미리 출력한다

Get-Content deletelist.txt | Select-Object -First 5 | ForEach-Object {
    if (Test-Path $_) { Write-Output $_ }
}
  • 시스템에 실제 존재하는 파일만 미리 확인할 수 있다.

2-3. 삭제 전 전체 실존 파일 한 번 더 체크한다(필수 x.)

Get-Content deletelist.txt | ForEach-Object {
    if (Test-Path $_) { Write-Output $_ }
}
  • 삭제 리스트 전체에서 실제로 존재하는 전체파일을 출력한다.

3. 삭제 명령 실행한다

모든 확인이 끝났다면 아래처럼 실제 삭제를 진행한다.

Get-Content deletelist.txt | ForEach-Object {
    if (Test-Path $_) { Remove-Item $_ }
}
  • 항상 삭제 전 목록을 다시 한 번 점검한 뒤 실행한다.
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/09   »
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
글 보관함
250x250