문제
명령 줄을 통해 파일을 압축 할 수 있습니까? 바람직하게는 오픈 소스/무료 도구를 사용합니다.
해결책
당신은 사용할 수 있습니다 :
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를 사용하여 zip 유틸리티를 작성하여 Windows에서 기본 UNZIP 기능을 트리거하십시오. 그런 다음 배치 파일 내에서 스크립트를 파이프 한 다음 호출하십시오. 그러면 독립형만큼 좋습니다. 과거에 수많은 작업을 위해 해냈습니다. 이렇게하면 타사 응용 프로그램이 필요하지 않으며 모든 것을 수행하는 하나의 배치 파일 만 필요합니다.
나는 넣었다 배치 파일을 사용하여 파일을 압축하는 방법에 대한 내 블로그의 예제:
' 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
그래서 지퍼 명령 (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
여기 문서 :
http://sevenzip.sourceforge.jp/chm/cmdline/commands/extract.htm
고마워요, 나는 그것을 기록 할 것입니다. 여기 내 솔루션을위한 스크립트가 있습니다. 제 3 자 압축 도구가 필요하지 않습니다.
배치 파일의 시작 부분에 아래 스크립트를 포함하여 함수를 작성한 다음 함수를 호출하려면 명령은 ...cscript /B j_unzip.vbs zip_file_name_goes_here.zip
다음은 상단에 추가 할 스크립트입니다 ...
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.
VBScript를 사용하여 내장 된 Windows .ZIP 파일 처리에 대한 기사가 있습니다.
https://www.aspfree.com/c/a/windows-scripting/compressed-folders-in-wsh/
(마지막 코드 Blurb는 추출을 다루는 것)
실행 파일을 잡으십시오 Info-Zip.
Info-Zip은 마이크로 컴퓨터에서 Cray SuperComputers까지의 하드웨어를 지원하며 거의 모든 버전의 UNIX, VMS, OS/2, Windows 9X/NT/등에서 실행됩니다. (AKA Win32), Windows 3.X, Wind 및 인간 68K (일본어). Lynxos, Tops-20, AOS/VS 및 Novell NLM에 대한 (오래된) 지원도 있습니다. 공유 라이브러리 (DLL)는 UNIX, OS/2, Win32 및 Win16에서 사용할 수 있으며 Win32, Win16, Wince 및 Mac OS에서 그래픽 인터페이스를 사용할 수 있습니다.
원래 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\
아래 코드를 배치 파일로 복사하고 실행하십시오. 아래는 컴퓨터에서 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