stamper

PowerShell 로 압축·해제하기 (Compress-Archive)

stamper2026. 7. 21.조회 168추천 0

PowerShell 로 압축·해제하기 (Compress-Archive)

사용 상황

선택한 파일만 ZIP으로 압축하고 새 폴더에 풀어 원본과 비교합니다.

적용 환경과 권한

Windows PowerShell 5.1 기준. Windows 시스템 cmdlet은 Windows 환경이 필요합니다. 일반 사용자 권한에서 시작하고 접근 실패는 메시지로 확인합니다. PowerShell 7 호환성은 별도 실행하지 않았습니다.

명령

$archiveRoot = Join-Path $env:TEMP 'stamper-archive-example'
New-Item -ItemType Directory -Path $archiveRoot -Force | Out-Null
$sourceFile = Join-Path $archiveRoot 'note.txt'
$zipFile = Join-Path $archiveRoot 'sample.zip'
$extractDir = Join-Path $archiveRoot 'expanded'
if ((Test-Path -LiteralPath $sourceFile) -or (Test-Path -LiteralPath $zipFile) -or (Test-Path -LiteralPath $extractDir)) {
    throw '예제 경로에 기존 파일이 있습니다. 다른 폴더 이름을 선택하세요.'
}
Set-Content -LiteralPath $sourceFile -Value 'archive demo' -Encoding UTF8
Compress-Archive -LiteralPath $sourceFile -DestinationPath $zipFile -ErrorAction Stop
Expand-Archive -LiteralPath $zipFile -DestinationPath $extractDir -ErrorAction Stop
(Get-FileHash -LiteralPath $sourceFile).Hash -eq (Get-FileHash -LiteralPath (Join-Path $extractDir 'note.txt')).Hash

경로·주소·패키지·포트는 자신의 대상에 맞게 지정합니다. 예제에 있는 기존 파일 보호 조건은 유지하세요.

출력과 해석 — 설명용

True면 예제 파일의 압축 전후 내용이 일치합니다. 전체 폴더 백업 성공을 의미하지 않습니다.

여기 적은 출력은 설명용입니다. 실제 격리 실행 범위와 결과는 아래 검증 기록을 기준으로 판단하세요.

검수 기준

  • 기존 ZIP·해제 대상과 충돌하지 않는가
  • 파일 목록과 내용 해시가 일치하는가
  • 숨김 파일 누락과 단일 파일 2GB 제약을 고려했는가

실패 시 수정과 복구

대상 파일 충돌 시 -Force로 덮기 전에 다른 경로를 사용한다. Compress-Archive는 숨김 항목을 제외할 수 있어 완전한 백업 용도로 쓰지 않는다. 암호화·분할·큰 파일은 별도 도구를 검토한다. 원본은 보존하고 예제 출력만 확인 후 정리한다.

검증 환경·검증일·출처

검토일: 2026-10-10.

실행 범위: 임시 경로에서 압축·해제·해시 일치·기존 경로 충돌 검증.

Microsoft 공식 문서

명령 인자 안내: LiteralPath는 경로 문자를 그대로 취급합니다. ErrorAction Stop은 처리 가능한 오류를 예외로 중단시킵니다. 조회 결과 없음과 실패는 동일하지 않습니다.

이 글이 도움이 되었나요?

댓글 0개

나

아직 댓글이 없습니다.