コマンドラインを使用してファイルを解凍する方法は?[閉まっている]


164

ファイルを解凍するためにコマンドラインを介して使用できるコマンドはどれですか?
できれば、Windowsに組み込まれているものか、オープンソース/無料のツール。


1
簡単なGoogle検索でこれが判明しました。これはWindowsで機能します(Windowsを使用しているのか、OSが実際にDOSであるのかは明確ではありません)。
ジェレミー

26
本当に古いバージョンのWindows(ME以前)を実行しているのでない限り、WindowsのコマンドラインはDOSではありません。:)
タイラー・マクヘンリー

ファイルを解凍する最も簡単な方法は、unzip.exeを使用することです。例:unzip.exe source.zip -d target_dir。URL:stahlworks.com/dev/index.php
tool

2
Powershell5を搭載したWindowsでは、Exand-Archiveおよびを使用してネイティブにそれを行うことができますCompress-Archive名誉が支払われるべき名誉。
LosManos

1
unzip [ファイル名] .zip
Amranur Ra​​hman 2018

回答:


53

あなたは使うことができます:

http://membrane.com/synapse/library/pkunzip.html

または

7zip:http ://www.7-zip.org/download.html

無料のバイトジップ:http://www.freebyte.com/fbzip/

またはinfozip:http ://infozip.sourceforge.net/


11
リストされている最初のURLは真の16ビットアプリケーションであるため、x64オペレーティングシステムでは機能しません。頭を上げただけです。
マークヘンダーソン

38
あなたが使用することができますPowerShellを使用してWindows 7または10にしている場合:powershell.exe -NoP -NonI -Command "Expand-Archive '.\file.zip' '.\unziped\'"
AK_

@AK_ Windows 8または8.1はどうですか?
Frank Vu

2
@AK_あなたはそれを独自の答えにするべきです。
BrainStone

221

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]

37
ヒント。jarを使用する場合は、JREだけでなく、JDKも必要です。
Qben、2012年

1
それは奇妙です、m jarは実際に問題を部分的に解決します。アーカイブ内のファイルを一覧表示し、指定されたファイルを抽出することができますが、すべてのファイルを同時に抽出することはできません...かなり奇妙です
mikus

@mikus:なぜ駄目なのか、コマンド<code> jar.exe xvf Compressed.zip </ code>を使用するだけ
Xinus

1
java.io.FileNotFoundException:test.zip(指定されたファイルが見つかりません)
markj

宛先フォルダを指定する方法はありますか?(抽出先オプションを選択したときなど)?
Leonardo Alves Machado

41

まず、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

3
一般的に、コードを回答に組み込むことは適切であり、コードにリンクすることは一般的には好ましくないと考えられています。
リッチブラッドショー

39

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

7z.exe x myarchive.zip

1
抽出されたコンテンツがすでに存在し、プロンプトが表示されずに既存のコンテンツを上書きする場合は、「7z.exe x -y myarchive.zip」を使用します
Suketu Bhuta

22

他の人が言及したように、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は再帰的です。通常、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/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


11

リッチさん、ありがとうございました。だからここに私自身のソリューションのスクリプトがあります。サードパーティの解凍ツールは必要ありません。

以下のスクリプトをバッチファイルの先頭に含めて関数を作成し、関数を呼び出すためのコマンドは... 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 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 var1 = ""の場合
    >> 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 'zipファイルの場所。
    >> 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 'コンテンツの抽出先のフォルダー。
    >> 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 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( "抽出"。)
    >> j_unzip.vbs ECHO。

2
美しい:)私はこれを使用して7zipコマンドラインをダウンロードします(その実行可能ファイルは圧縮されています(奇妙です))
Sebastian

これは期待どおりに機能しており、任意のフォルダーを圧縮して、iexpressを使用してexeを作成し、これを使用して解凍することができます。これはWindows 10でも機能しますか?
キランクマール

9

VBscriptを使用した組み込みのWindows .ZIPファイル処理についての記事は、次のとおりです。

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

(最後のコードの宣伝は抽出を扱います)


簡単ではありませんが、これはネイティブのWindows zipフォルダー機能のみを使用する非常に優れたソリューションのようです。しばらくこれを探していました。ありがとう!
Andre Steenveld、2011年

5

元々、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\

1
それはoldSchoolです!
granadaCoder

3

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

Info-ZIPは、マイクロコンピュータからCrayスーパーコンピュータまでのハードウェアをサポートし、ほとんどすべてのバージョンのUnix、VMS、OS / 2、Windows 9x / NT / etcで動作します。(別名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で利用できます。


1

以下のコードをバッチファイルにコピーして実行します。以下では、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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.