명령 행을 사용하여 파일을 압축 해제하는 방법은 무엇입니까? [닫은]
파일 압축을 풀기 위해 명령 줄을 통해 어떤 명령을 사용할 수 있습니까?
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/
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
I've shown a few options.
-r is recursive. Usually what you want with zip functionality.
a is for "archive". That's the name of the output zip file.
-p is for a password (optional)
-w is a the source directory. This will nest your files correctly in the zip file, without extra folder information.
-mem is the encryption strength.
There are others. But the above will get you running.
NOTE: Adding a password will make the zip file unfriendly when it comes to viewing the file through Windows Explorer. The client may need their own copy of 7-zip (or winzip or other) to view the contents of the file.
EDIT::::::::::::(just extra stuff).
There is a "command line" version which is probably better suited for this: http://www.7-zip.org/download.html
(current (at time of writing) direct link) http://sourceforge.net/projects/sevenzip/files/7-Zip/9.20/7za920.zip/download
So the zip command would be (with the command line version of the 7 zip tool).
"C:\WhereIUnzippedCommandLineStuff\7za.exe" a MySuperCoolZipFile.zip "C:\MyFiles\*.jpg" -pmypassword -r -w"C:\MyFiles\" -mem=AES256
Now the unzip portion: (to unzip the file you just created)
"C:\WhereIUnzippedCommandLineStuff\7zipCommandLine\7za.exe" e MySuperCoolZipFile.zip "*.*" -oC:\SomeOtherFolder\MyUnzippedFolder -pmypassword -y -r
Documentation here:
http://sevenzip.sourceforge.jp/chm/cmdline/commands/extract.htm
Thanks Rich, I will take note of that. So here is the script for my own solution. It requires no third party unzip tools.
Include the script below at the start of the batch file to create the function, and then to call the function, the command is... cscript /B j_unzip.vbs zip_file_name_goes_here.zip
Here is the script to add to the top...
REM Changing working folder back to current directory for Vista & 7 compatibility %~d0 CD %~dp0 REM Folder changed REM This script upzip's files... > j_unzip.vbs ECHO ' >> j_unzip.vbs ECHO ' UnZip a file script >> j_unzip.vbs ECHO ' >> j_unzip.vbs ECHO ' It's a mess, I know!!! >> j_unzip.vbs ECHO ' >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO ' Dim ArgObj, var1, var2 >> j_unzip.vbs ECHO Set ArgObj = WScript.Arguments >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO If (Wscript.Arguments.Count ^> 0) Then >> j_unzip.vbs ECHO. var1 = ArgObj(0) >> j_unzip.vbs ECHO Else >> j_unzip.vbs ECHO. var1 = "" >> j_unzip.vbs ECHO End if >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO If var1 = "" then >> j_unzip.vbs ECHO. strFileZIP = "example.zip" >> j_unzip.vbs ECHO Else >> j_unzip.vbs ECHO. strFileZIP = var1 >> j_unzip.vbs ECHO End if >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO 'The location of the zip file. >> j_unzip.vbs ECHO REM Set 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 'The folder the contents should be extracted to. >> j_unzip.vbs ECHO outFolder = sCurPath ^& "\" >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO. WScript.Echo ( "Extracting file " ^& strFileZIP) >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO Set objShell = CreateObject( "Shell.Application" ) >> j_unzip.vbs ECHO Set objSource = objShell.NameSpace(strZipFile).Items() >> j_unzip.vbs ECHO Set 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 ( "Extracted." ) >> j_unzip.vbs ECHO.
There is an article on getting to the built-in Windows .ZIP file handling with VBscript here:
https://www.aspfree.com/c/a/Windows-Scripting/Compressed-Folders-in-WSH/
(The last code blurb deals with extraction)
Grab an executable from info-zip.
Info-ZIP supports hardware from microcomputers all the way up to Cray supercomputers, running on almost all versions of Unix, VMS, OS/2, Windows 9x/NT/etc. (a.k.a. Win32), Windows 3.x, Windows CE, MS-DOS, AmigaDOS, Atari TOS, Acorn RISC OS, BeOS, Mac OS, SMS/QDOS, MVS and OS/390 OE, VM/CMS, FlexOS, Tandem NSK and Human68K (Japanese). There is also some (old) support for LynxOS, TOPS-20, AOS/VS and Novell NLMs. Shared libraries (DLLs) are available for Unix, OS/2, Win32 and Win16, and graphical interfaces are available for Win32, Win16, WinCE and Mac OS.
Originally ZIP files were created with MS-DOS command line software from PKWare, the two programs were PKZIP.EXE and PKUNZIP.EXE. I think you can still download PKUNZIP at the PKWare site here:
http://www.pkware.com/software-pkzip/dos-compression
The actual command line could look something like this:
C:\>pkunzip c:\myzipfile.zip c:\extracttothisfolder\
Copy the below code to a batch file and execute. Below requires Winzip to be installed/accessible from your machine. Do change variables as per your need.
@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
참고URL : https://stackoverflow.com/questions/1021557/how-to-unzip-a-file-using-the-command-line
'IT박스' 카테고리의 다른 글
실제로 NSAssert의 요점은 무엇입니까? (0) | 2020.06.06 |
---|---|
PHP 치명적 오류 : 정의되지 않은 함수 json_decode () 호출 (0) | 2020.06.06 |
호출 된 메소드에서 호출자의 메소드 이름을 얻는 방법은 무엇입니까? (0) | 2020.06.06 |
2 열 div 레이아웃 : 너비가 고정 된 오른쪽 열, 왼쪽 유체 (0) | 2020.06.06 |
동일한 테이블의 한 열에서 다른 열로 값 복사 (0) | 2020.06.06 |