[windows] Windows의 내장 기능 만 사용하여 스크립트에서 압축 또는 압축 해제를 어떻게 할 수 있습니까?

Windows에서는 다음과 같은 방법으로 일부 파일을 압축 할 수 있습니다

마우스 오른쪽 버튼을 클릭 → 보내기압축 (압축) 폴더

.zip파일 을 두 번 클릭하여 압축을 풀고 파일을 추출하십시오.

타사 소프트웨어를 설치할 필요없이 스크립트 (.bat 파일)에서 이러한 기능을 적용하는 방법이 있습니까?



답변

2013 년에는 불가능했습니다. Microsoft는 이에 대한 실행 파일을 제공하지 않았습니다.

이 작업을 수행하는 VBS 방법은이 링크를 참조하십시오.
/superuser/201371/create-zip-folder-from-the-command-line-windows

Windows 8부터는 .NET Framework 4.5가 기본적으로 설치되며 System.IO.Compression.ZipArchive 및 PowerShell을 사용할 수 있으며 스크립트를 작성할 수 있습니다 (
https://stackoverflow.com/a/26843122/71312 참조).


답변

Steven Penny의 PowerShell 솔루션을 확장하려면 다음과 같이 powershell.exe를 호출하여 배치 파일에 통합 할 수 있습니다.

powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('foo.zip', 'bar'); }"

Ivan Shilo가 말했듯이 PowerShell 2에서는 작동하지 않으므로 PowerShell 3 이상 및 .NET Framework 4가 필요합니다.


답변

현재 .NET 4.5 , PowerShell은이 작업을 수행 할 수 있습니다 :

Add-Type -A System.IO.Compression.FileSystem
[IO.Compression.ZipFile]::CreateFromDirectory('foo', 'foo.zip')
[IO.Compression.ZipFile]::ExtractToDirectory('foo.zip', 'bar')

마지막 두 줄을 위해, bar그리고 foo당신이 가진 폴더를하고자하는 이름으로 대체 할 수있다, 또는 어떤 이름은 기존의 폴더입니다. foo.zip두 경우 모두 zip 파일로 작동하여 저장하거나 압축을 해제합니다.


답변

Java를 설치 한 경우 다음 jar명령을 사용하여 ZIP 아카이브로 압축 할 수 있습니다 .

jar -cMf targetArchive.zip sourceDirectory

c = 새 아카이브 파일을 만듭니다.

M = 매니페스트 파일을 아카이브에 추가하지 않도록 지정합니다.

f = 대상 파일 이름을 나타냅니다.


답변

PowerShell 5.0

에서 Microsoft.PowerShell.Archive사용할 수 :

예 :

  • result.zip전체 Test폴더 에서 작성하십시오 .

    Compress-Archive -Path C:\Test -DestinationPath C:\result
    
  • result.zip지정된 Test폴더 에서 의 내용을 추출하십시오 .

    Expand-Archive -Path result.zip -DestinationPath C:\Test
    

답변

ZIP은 아니지만 Windows 도구를 사용하여 파일을 압축하는 유일한 방법은 다음과 같습니다.

makecab <source> <dest>.cab

압축을 풀려면

expand <source>.cab <dest>

고급 예 (ss64.com) :

Create a self extracting archive containing movie.mov:
C:\> makecab movie.mov "temp.cab"
C:\> copy /b "%windir%\system32\extrac32.exe"+"temp.cab" "movie.exe"
C:\> del /q /f "temp.cab"

추가 정보 : makecab , expand , makecab advanced uses


답변

7-Zip 사용 :

우편 번호 : 폴더 foo가 있으며 압축을 풉니 다myzip.zip

"C:\Program Files\7-Zip\7z.exe" a  -r myzip.zip -w foo -mem=AES256

압축 풀기 : 압축을 풀고 싶습니다 ( myzip.zip)를 현재 디렉토리 ( ./)로

"C:\Program Files\7-Zip\7z.exe" x  myzip.zip  -o./ -y -r