파일 압축을 풀기 위해 명령 줄을 통해 어떤 명령을 사용할 수 있습니까?
Windows 또는 오픈 소스 / 무료 도구에 내장 된 것이 좋습니다.
파일 압축을 풀기 위해 명령 줄을 통해 어떤 명령을 사용할 수 있습니까?
Windows 또는 오픈 소스 / 무료 도구에 내장 된 것이 좋습니다.
답변:
당신은 사용할 수 있습니다 :
http://membrane.com/synapse/library/pkunzip.html
또는
7zip : http://www.7-zip.org/download.html
빈 바이트 zip : http://www.freebyte.com/fbzip/
또는 infozip : http://infozip.sourceforge.net/
powershell.exe -NoP -NonI -Command "Expand-Archive '.\file.zip' '.\unziped\'"
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]
먼저 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
7-Zip 은 공개 소스이며 무료이며 다양한 형식을 지원합니다.
7z.exe x myarchive.zip
다른 사람들이 언급했듯이 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
고마워 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.
VBscript를 사용하여 기본 제공 Windows .ZIP 파일 처리에 대한 기사가 있습니다.
https://www.aspfree.com/c/a/Windows-Scripting/Compressed-Folders-in-WSH/
(마지막 코드 흐림은 추출을 처리합니다)
원래 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\
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에서 사용 가능합니다.
아래 코드를 배치 파일에 복사하고 실행하십시오. 아래는 컴퓨터에서 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