PowerShell을 사용하여 파일 압축 및 압축 해제
PowerShell 5.0에서 Microsoft에는 zip 아카이브를 만들고 기존 아카이브에서 파일을 추출하는 명령이 있습니다. 이 문서에서는 압축 파일을 보관 및 압축 해제하는 PowerShell 명령에 대해 설명합니다.
다음 명령은 PowerShell v5.0에서 릴리스된 최신 cmdlet 중 두 가지입니다. Compress-Archive
명령은 폴더 또는 개별 파일에서 압축된 아카이브 파일을 만들고 Expand-Archive
명령은 압축된 아카이브 파일에서 파일을 추출합니다.
PowerShell을 사용하여 파일 압축
PowerShell을 사용하여 새 .zip
아카이브의 파일을 압축해 보겠습니다.
-Path
매개변수를 사용하여 압축하려는 폴더의 위치를 지정하고 -DestinationPath
매개변수를 사용하여 생성하려는 압축 아카이브의 이름을 지정합니다.
예를 들어, 아래 명령은 루트 C:
디렉토리에 Temp
폴더를 압축하고 Temp 폴더에 Temp_Files.zip
이라는 아카이브를 만듭니다.
Compress-Archive -Path C:\Temp -DestinationPath C:\Temp\Temp_Files.zip
또는 -Path
매개변수 대신 -LiteralPath
매개변수를 사용하여 Temp 폴더의 파일을 개별적으로 압축할 수 있습니다. 이렇게 하면 -LiteralPath
매개변수에 나열된 두 개의 파일만으로 아카이브가 생성됩니다.
Compress-Archive -LiteralPath C:\Temp\File1.txt, C:\Temp\File2.txt -DestinationPath C:\Temp\Temp_Files.zip -Force
-Force
매개변수를 추가하여 내가 만든 첫 번째 아카이브를 덮어씁니다. -Force
매개 변수가 없으면 기존 아카이브를 바꿀 수 없으며 Windows PowerShell은 대신 아카이브에 파일을 추가하라는 메시지를 표시합니다.
아카이브에 여러 파일을 추가하려면 -Update
매개변수를 사용할 수 있습니다. 예를 들어 아래 명령은 Invoices
폴더의 모든 파일을 기존 Temp_Files.zip
아카이브에 추가합니다.
Compress-Archive -Path C:\Temp\* -Update -DestinationPath C:\Temp\Temp_Files.zip
-CompressionLevel
매개변수를 NoCompression
, Optimal
또는 Fastest
의 세 가지 값 중 하나로 사용할 수도 있습니다.
-CompressionLevel
매개변수가 표현식에 없으면 Optimal
이 기본값입니다. ‘최적’ 압축은 최상의 압축을 사용하지만 ‘가장 빠름’보다 더 오래 걸릴 수 있습니다.
압축 없이 아카이브를 생성하려면 NoCompression
값을 사용하십시오.
Compress-Archive -Path C:\Temp\* -Update -DestinationPath C:\Temp\Temp_Files.zip -CompressionLevel Optimal
PowerShell을 사용하여 파일 압축 풀기
아카이브에서 파일을 추출하려면 압축을 푼 파일의 대상 폴더와 아카이브 이름을 지정해야 합니다.
Expand-Archive
명령을 사용하면 Temp_Files.zip
아카이브의 내용을 Temp
폴더로 추출합니다.
Expand-Archive -LiteralPath C:\Temp\Temp_Files.Zip -DestinationPath C:\Temp
Expand-Archive
는 압축을 푼 파일의 폴더를 자동으로 생성합니다.
그러나 압축을 푼 압축 파일이 대상 폴더에 이미 있는 경우 Expand-Archive
에서 오류가 발생합니다. 명령줄에 -Force
매개변수를 추가하여 대상 폴더의 파일을 덮어쓸 수 있습니다.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn