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

StackOverflow https://stackoverflow.com/questions/1021557

  •  06-07-2019
  •  | 
  •  

문제

명령 줄을 통해 파일을 압축 할 수 있습니까? 바람직하게는 오픈 소스/무료 도구를 사용합니다.

도움이 되었습니까?

해결책

다른 팁

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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top