명령 행을 사용하여 파일을 압축 해제하는 방법은 무엇입니까? [닫은]


164

파일 압축을 풀기 위해 명령 줄을 통해 어떤 명령을 사용할 수 있습니까?
Windows 또는 오픈 소스 / 무료 도구에 내장 된 것이 좋습니다.


1
빠른 Google 검색 으로이 결과가 나타났습니다 . 그것은 Windows에서 작동합니다 (Windows를 사용하고 있는지 또는 OS가 실제로 DOS인지 여부는 확실하지 않습니다).
제레미

26
이전 버전의 Windows (ME 또는 이전 버전)를 실행하지 않는 한 Windows 명령 줄은 DOS가 아닙니다. :)
Tyler McHenry

파일을 압축 해제하는 가장 쉬운 방법은 unzip.exe를 사용하는 것입니다. 예 : unzip.exe source.zip -d target_dir URL : stahlworks.com/dev/index.php?tool=zipunzip
zappee

2
Powershell5가있는 Windows는 기본적으로 Exand-Archiveand를 사용 하여 이를 수행 할 수 있습니다 Compress-Archive. 영예가 예정된 영예.
LosManos

1
unzip [filename] .zip
Amranur Rahman

답변:


53

11
나열된 첫 번째 URL은 실제 16 비트 응용 프로그램이므로 x64 운영 체제에서는 작동하지 않습니다. 그냥 머리 위로.
Mark Henderson

38
powershell.exe -NoP -NonI -Command "Expand-Archive '.\file.zip' '.\unziped\'"
Powershell

@AK_ Windows 8 또는 8.1은 어떻습니까?
Frank Vu

2
@AK_ 당신은 그 자신의 대답을해야합니다.
BrainStone

221

PC에 이미 java가 있고 bin 디렉토리가 경로에있는 경우 (대부분의 경우) 명령 행을 사용할 수 있습니다.

jar xf test.zip

또는 경로에없는 경우 :

C:\Java\jdk1.6.0_03\bin>jar xf test.zip

jar 도구에 대한 전체 옵션 세트는 여기에서 제공 됩니다 .

예 :

Extract jar file
    jar x[v]f jarfile [inputfiles] [-Joption] 
    jar x[v] [inputfiles] [-Joption]

37
힌트. jar를 사용하려면 JRE뿐만 아니라 JDK가 필요합니다.
Qben

1
그것은 이상합니다 .m jar는 실제로 문제를 부분적으로 해결합니다. 아카이브 내의 파일을 나열하고 지정된 파일을 추출 할 수 있지만 동시에 모든 파일을 추출 할 수는 없습니다 ... 꽤 이상합니다
mikus

@mikus : 왜 <code> jar.exe xvf Compressed.zip </ code> 명령을 사용하십시오
Xinus

1
java.io.FileNotFoundException : test.zip (시스템이 지정된 파일을 찾을 수 없음)
markj

대상 폴더를 지정하는 방법이 있습니까? (추출 대상 옵션을 선택할 때와 같은)?
레오나르도 알베스 마차도

41

먼저 vbscript를 사용하여 압축 해제 유틸리티를 작성하여 Windows에서 기본 압축 해제 기능을 트리거하십시오. 그런 다음 배치 파일 내에서 스크립트를 파이프 아웃 한 다음 호출하십시오. 그렇다면 독립형만큼 좋습니다. 나는 과거에 수많은 작업을 위해 해냈습니다. 이런 식으로 타사 응용 프로그램이 필요하지 않으며 모든 것을 수행하는 배치 파일 하나만 필요합니다.

내가 넣어 배치 파일을 사용하여 파일을 압축 해제하는 방법에 대한 내 블로그에 예를 :

' j_unzip.vbs
'
' UnZip a file script
'
' By Justin Godden 2010
'
' It's a mess, I know!!!
'

' Dim ArgObj, var1, var2
Set ArgObj = WScript.Arguments

If (Wscript.Arguments.Count > 0) Then
 var1 = ArgObj(0)
Else
 var1 = ""
End if

If var1 = "" then
 strFileZIP = "example.zip"
Else
 strFileZIP = var1
End if

'The location of the zip file.
REM Set WshShell = CreateObject("Wscript.Shell")
REM CurDir = WshShell.ExpandEnvironmentStrings("%%cd%%")
Dim sCurPath
sCurPath = CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".")
strZipFile = sCurPath & "\" & strFileZIP
'The folder the contents should be extracted to.
outFolder = sCurPath & "\"

 WScript.Echo ( "Extracting file " & strFileZIP)

Set objShell = CreateObject( "Shell.Application" )
Set objSource = objShell.NameSpace(strZipFile).Items()
Set objTarget = objShell.NameSpace(outFolder)
intOptions = 256
objTarget.CopyHere objSource, intOptions

 WScript.Echo ( "Extracted." )

' This bit is for testing purposes
REM Dim MyVar
REM MyVar = MsgBox ( strZipFile, 65, "MsgBox Example"

다음과 같이 사용하십시오.

cscript //B j_unzip.vbs zip_file_name_goes_here.zip

3
일반적으로 답변에 코드를 넣는 것이 좋으며 일반적으로 코드를 연결하는 것은 좋지 않습니다.
Rich Bradshaw

39

7-Zip 은 공개 소스이며 무료이며 다양한 형식을 지원합니다.

7z.exe x myarchive.zip

1
추출 된 컨텐츠가 이미 존재하고 프롬프트없이 기존 컨텐츠를 대체하려는 경우 "7z.exe x -y myarchive.zip"
Suketu Bhuta

22

다른 사람들이 언급했듯이 7-zip은 훌륭합니다.

참고 : 파일을 압축 한 다음 압축을 풉니 다. 압축 해제가 맨 아래에 있습니다.

내 공헌 :

얻을

7-Zip 명령 행 버전

현재 URL

http://www.7-zip.org/download.html

문법?

다음을 .bat 파일에 넣을 수 있습니다

"C:\Program Files\7-Zip\7z.exe" a MySuperCoolZipFile.zip "C:\MyFiles\*.jpg" -pmypassword -r -w"C:\MyFiles\" -mem=AES256

몇 가지 옵션을 보여주었습니다.

-r은 재귀 적입니다. 일반적으로 지퍼 기능으로 원하는 것.

a는 "보관"을위한 것입니다. 출력 zip 파일의 이름입니다.

-p는 비밀번호입니다 (선택 사항).

-w는 소스 디렉토리입니다. 이렇게하면 추가 폴더 정보없이 파일이 zip 파일에 올바르게 중첩됩니다.

-mem은 암호화 강도입니다.

다른 것도 있습니다. 그러나 위의 내용으로 인해 실행됩니다.

참고 : 암호를 추가하면 Windows 탐색기를 통해 파일을 볼 때 zip 파일이 비우호적입니다. 파일 내용을 보려면 클라이언트에 7-zip (또는 winzip 또는 기타)의 사본이 필요할 수 있습니다.

편집 : : : : : : : : : : : : (추가 항목).

이에 더 적합한 "명령 줄"버전이 있습니다. http://www.7-zip.org/download.html

(현재 (작성 당시) 직접 링크) http://sourceforge.net/projects/sevenzip/files/7-Zip/9.20/7za920.zip/download

따라서 zip 명령 은 (7 zip 도구의 명령 행 버전과 함께)됩니다.

"C:\WhereIUnzippedCommandLineStuff\7za.exe" a MySuperCoolZipFile.zip "C:\MyFiles\*.jpg" -pmypassword -r -w"C:\MyFiles\" -mem=AES256

이제 압축 해제 부분 : (방금 만든 파일의 압축을 풀기 위해)

"C:\WhereIUnzippedCommandLineStuff\7zipCommandLine\7za.exe" e MySuperCoolZipFile.zip "*.*" -oC:\SomeOtherFolder\MyUnzippedFolder -pmypassword -y -r

"e"인수에 대한 대안으로 ax 인수가 있습니다.

  e: Extract files from archive (without using directory names)
  x: eXtract files with full paths

여기에 설명서 :

http://sevenzip.sourceforge.jp/chm/cmdline/commands/extract.htm


11

고마워 Rich, 나는 그것을 주목할 것이다. 그래서 여기 내 자신의 솔루션에 대한 스크립트가 있습니다. 타사 압축 풀기 도구가 필요하지 않습니다.

배치 파일의 시작 부분에 아래 스크립트를 포함시켜 함수를 만든 다음 함수를 호출하려면 명령은 다음과 같습니다. cscript /B j_unzip.vbs zip_file_name_goes_here.zip

상단에 추가 할 스크립트는 다음과 같습니다.

REM Vista 및 7 호환성을 위해 작업 폴더를 현재 디렉토리로 다시 변경
% ~ d0
CD % ~ dp0
REM 폴더가 변경되었습니다

REM이 스크립트 파일은 ...

    > j_unzip.vbs ECHO '
    >> j_unzip.vbs ECHO '파일 스크립트 압축 해제
    >> j_unzip.vbs ECHO '
    >> j_unzip.vbs ECHO '엉망이야, 알아!
    >> j_unzip.vbs ECHO '
    >> j_unzip.vbs ECHO.
    >> j_unzip.vbs ECHO 'Dim ArgObj, var1, var2
    >> j_unzip.vbs ECHO 설정 ArgObj = WScript.Arguments
    >> j_unzip.vbs ECHO.
    >> j_unzip.vbs ECHO If (Wscript.Arguments.Count ^> 0) 그런 다음
    >> j_unzip.vbs ECHO. var1 = ArgObj (0)
    >> j_unzip.vbs ECHO 기타
    >> j_unzip.vbs ECHO. var1 = ""
    >> j_unzip.vbs ECHO End if
    >> j_unzip.vbs ECHO.
    >> j_unzip.vbs ECHO var1 = ""이면
    >> j_unzip.vbs ECHO. strFileZIP = "example.zip"
    >> j_unzip.vbs ECHO 기타
    >> j_unzip.vbs ECHO. strFileZIP = var1
    >> j_unzip.vbs ECHO End if
    >> j_unzip.vbs ECHO.
    >> j_unzip.vbs ECHO 'zip 파일의 위치입니다.
    >> j_unzip.vbs ECHO REM 설정 WshShell = CreateObject ( "Wscript.Shell")
    >> j_unzip.vbs ECHO REM CurDir = WshShell.ExpandEnvironmentStrings ( "%% cd %%")
    >> j_unzip.vbs ECHO Dim sCurPath
    >> j_unzip.vbs ECHO sCurPath = CreateObject ( "Scripting.FileSystemObject"). GetAbsolutePathName ( ".")
    >> j_unzip.vbs ECHO strZipFile = sCurPath ^ & "\"^ & strFileZIP
    >> j_unzip.vbs ECHO '내용을 추출 할 폴더입니다.
    >> j_unzip.vbs ECHO outFolder = sCurPath ^ & "\"
    >> j_unzip.vbs ECHO.
    >> j_unzip.vbs ECHO. WScript.Echo ( "추출 파일"^ & strFileZIP)
    >> j_unzip.vbs ECHO.
    >> j_unzip.vbs ECHO 설정 objShell = CreateObject ( "Shell.Application")
    >> j_unzip.vbs ECHO 설정 objSource = objShell.NameSpace (strZipFile) .Items ()
    >> j_unzip.vbs ECHO 설정 objTarget = objShell.NameSpace (outFolder)
    >> j_unzip.vbs ECHO intOptions = 256
    >> j_unzip.vbs ECHO objTarget.CopyHere objSource, intOptions
    >> j_unzip.vbs ECHO.
    >> j_unzip.vbs ECHO. WScript.Echo ( "추출")
    >> j_unzip.vbs ECHO.

2
beautiful :) 나는 이것을 사용하여 7zip 명령 줄을 다운로드합니다 (실행 파일이 압축되어 있습니다 (얼마나 이상합니다))
Sebastian

이것은 예상대로 작동합니다. 이제 iexpress를 사용하여 exe를 만들고 exe를 사용하여 압축을 풀 수 있습니다. 이것은 Windows 10에서도 작동합니까?
Kiran Kumar


5

원래 ZIP 파일은 PKWare의 MS-DOS 명령 행 소프트웨어로 작성되었으며 두 프로그램은 PKZIP.EXE 및 PKUNZIP.EXE입니다. PKWare 사이트에서 PKUNZIP을 계속 다운로드 할 수 있다고 생각합니다.

http://www.pkware.com/software-pkzip/dos-compression

실제 명령 행은 다음과 같습니다.

C:\>pkunzip c:\myzipfile.zip c:\extracttothisfolder\

1
oldSchool입니다!
granadaCoder 2018

3

info-zip 에서 실행 파일을 가져옵니다 .

Info-ZIP는 거의 모든 버전의 Unix, VMS, OS / 2, Windows 9x / NT / etc에서 실행되는 마이크로 컴퓨터부터 Cray 슈퍼 컴퓨터까지 하드웨어를 지원합니다. (일명 Win32), Windows 3.x, Windows CE, MS-DOS, AmigaDOS, Atari TOS, Acorn RISC OS, BeOS, Mac OS, SMS / QDOS, MVS 및 OS / 390 OE, VM / CMS, FlexOS, Tandem NSK 및 Human68K (일본어). LynxOS, TOPS-20, AOS / VS 및 Novell NLM에 대한 (구) 지원도 있습니다. 공유 라이브러리 (DLL)는 Unix, OS / 2, Win32 및 Win16에서 사용 가능하며 그래픽 인터페이스는 Win32, Win16, WinCE 및 Mac OS에서 사용 가능합니다.


1

아래 코드를 배치 파일에 복사하고 실행하십시오. 아래는 컴퓨터에서 Winzip을 설치 / 액세스 할 수 있어야합니다. 필요에 따라 변수를 변경하십시오.

@ECHO OFF
SET winzip_path="C:\Program Files\WinZip"
SET source_path="C:\Test"
SET output_path="C:\Output\"
SET log_file="C:\Test\unzip_log.txt"
SET file_name="*.zip"

cd %source_path%
echo Executing for %source_path% > %log_file%

FOR /f "tokens=*" %%G IN ('dir %file_name% /b') DO (
echo Processing : %%G
echo File_Name : %%G >> %log_file%
%winzip_path%\WINZIP32.EXE -e %%G %output_path%
)

PAUSE
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.