コマンドラインを使用してファイルを解凍するにはどうすればよいですか? [閉まっている]

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を使用して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

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は再帰的です。通常、zip機能で必要なもの。

aは「アーカイブ」用です。それが出力zipファイルの名前です。

-pはパスワード用です(オプション)

-wはソースディレクトリです。これにより、追加のフォルダー情報なしで、zipファイルにファイルが正しくネストされます。

-memは暗号化強度です。

他にもあります。しかし、上記はあなたを実行します。

注:パスワードを追加すると、Windowsエクスプローラーでファイルを表示する際にzipファイルが使いにくくなります。クライアントは、ファイルの内容を表示するために7-zip(またはwinzipなど)の独自のコピーを必要とする場合があります。

EDIT ::::::::::: :(余分なもの)

「コマンドライン」があります。おそらくこれにより適しているバージョン: 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

ドキュメントはこちら:

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

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

以下のスクリプトをバッチファイルの先頭に含めて関数を作成し、関数を呼び出してコマンドを実行します... 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 /

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

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

  

Info-ZIPは、ほとんどすべてのバージョンのUnix、VMS、OS / 2、Windows 9x / NTなどで実行される、マイクロコンピューターからCrayスーパーコンピューターまでのハードウェアをサポートします。 (別名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、タンデムNSKおよびHuman68K(日本語)。 LynxOS、TOPS-20、AOS / VS、Novell NLMの(古い)サポートもあります。共有ライブラリ(DLL)は、Unix、OS / 2、Win32、およびWin16で使用でき、グラフィカルインターフェイスはWin32、Win16、WinCE、およびMac OSで使用できます。

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

以下のコードをバッチファイルにコピーして実行します。以下では、マシンから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