web-dev-qa-db-ja.com

コマンドラインを使用してファイルを解凍する方法

コマンドラインからファイルを解凍できますか?できればオープンソース/フリーツールを使ってください。

145
Th3Fix3r

あなたが使用することができます:

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/

46
Red33mer

あなたの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]
203
Brian

まず、vbscriptを使用してWindowsのネイティブの解凍機能を起動する解凍ユーティリティを作成します。次に、バッチファイル内からスクリプトをパイプアウトして呼び出します。それからそれは単独で立つのと同じくらい良いです。私は過去に多数のタスクを実行しました。こうすれば、サードパーティ製のアプリケーションを必要とせず、すべてを実行する1つのバッチファイルだけが必要になります。

私は バッチファイルを使用してファイルを解凍する方法についての私のブログの例

' 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
38
Justin Godden

7-Zip 、オープンソースで、無料で、幅広いフォーマットをサポートしています。

7z.exe x myarchive.Zip
37
ninesided

他の人が暗示しているように、7-Zipは素晴らしいです。

注:私は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は再帰的です。通常あなたがZip機能で欲しいもの。

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 /ダウンロード

そのため、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

ドキュメントはこちら:

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

19
granadaCoder

Richに感謝します、私はそれに注意します。だからここに私自身のソリューションのためのスクリプトがあります。サードパーティの解凍ツールは必要ありません。

以下のスクリプトをバッチファイルの先頭に含めて関数を作成し、次に関数を呼び出すためのコマンドは... cscript /B j_unzip.vbs Zip_file_name_goes_here.Zipです。

これが一番上に追加するスクリプトです...

 REM Vistaと7の互換性のために作業フォルダを現在のディレクトリに戻します
%〜d0 
 CD%〜dp0 
 REMフォルダを変更しました
 
 REMこのスクリプトはupzipのファイルを... 
 
> 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 '薄暗いArgObj、var1、var2 
 >> j_unzip.vbs ECHO Set 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 
 >> 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 
 >> j_unzip.vbs ECHO [
] >> j_unzip.vbs ECHO 'Zipファイルの場所。
 >> j_unzip.vbs ECHO REM Set WshShell = CreateObject( "Wscript.Shell")
 >> j_unzip.vbs ECHO REMCurDir = WshShell.ExpandEnvironmentStrings( "%% cd %%")
 >> j_unzip.vbs ECHO Dim sCurPath 
 >> j_unzip.vbs ECHO sCurPath = CreateObject( "Scripting.FileSystemObject")。GetAbsolutePathName( "。")[ 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.CopyこちらobjSource、intOptions 
 >> j_unzip.vbs ECHO 
 >> j_unzip.vbs ECHO。 WScript.Echo( "Extracted。")
 >> j_unzip.vbs ECHO。
10
Justin Godden

ここにVBscriptでの組み込みのWindows .Zipファイル処理に到達することに関する記事があります:

https://www.aspfree.com/c/a/Windows-Scripting/Compressed-Folders-in-WSH/

(最後のコードは、抽出を扱っています)

8
Jon Bailey

info-Zip から実行ファイルを取得します。

Info-Zipは、ほとんどすべてのバージョンのUnix、VMS、OS/2、Windows 9x/NTなどで動作する、マイクロコンピュータからCrayスーパーコンピュータまでのハードウェアをサポートしています。 (別名Win32)、ウィンドウズ3.x、ウィンドウズCE、MS-DOS、AmigaDOS、アタリTOS、ドングリRISC OS、BeOS、マックOS、SMS/QDOS、MVSとOS/390 OE、VM/CMS、FlexOS、タンデムNSKとHuman68K(日本語)。 LynxOS、TOPS-20、AOS/VS、Novell NLMのサポートもあります。共有ライブラリ(DLL)は、Unix、OS/2、Win32、およびWin16で使用でき、グラフィカルインタフェースは、Win32、Win16、WinCE、およびMac OSで使用できます。

2
gimel

もともとZipファイルはPKWareのMS-DOSコマンドラインソフトウェアで作成されたもので、2つのプログラムはPKZIP.EXEとPKUNZIP.EXEでした。私はあなたがまだここにPKWareサイトでPKUNZIPをダウンロードすることができると思います:

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

実際のコマンドラインは次のようになります。

C:\>pkunzip c:\myzipfile.Zip c:\extracttothisfolder\
2
Michiel

以下のコードをバッチファイルにコピーして実行してください。以下に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
1
Sandeep Gaadhe