2010-10-20 07:50:38 +0000 2010-10-20 07:50:38 +0000
63
63
Advertisement

コマンドラインから.zipフォルダを作成する - (Windows)

Advertisement

コマンドラインでフォルダから.zipファイルを作成することは可能でしょうか、サードパーティ製の実行ファイルは使いたくないです。

「圧縮フォルダに送る」みたいなことを考えていたのですが、やり方がわかりません…。

Advertisement

回答 (10)

41
41
41
2015-04-06 21:26:20 +0000

PowerShell 5 (2016年2月)から、"Compress-Archive “を使用することができます:

Compress-Archive -Path input.txt -DestinationPath output.zip

または:

Compress-Archive input.txt output.zip

input.txt ここでは、ディレクトリ https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.archive/compress-archive?view=powershell-5.1 も可能性があります。

7
7
7
2010-10-20 07:57:39 +0000

Windowsに内蔵されているZIPファイルのコマンドラインはないと思います(Server 2003 Resource Kitのcompress以外)。サードパーティを使うしかないでしょう。みんな大好き 7zip !

6
Advertisement
6
6
2010-10-20 08:32:39 +0000

私のニーズに合わせて、いくつかの異なるソースからこのスクリプトを組み合わせました。このスクリプトをコピーして、拡張子 “.vbs” のファイルに貼り付けてください。このスクリプトはもともと Windows XP 用に作られたものですが、Windows 7 x64 Ultimate でも動作します - Windows がこのスクリプトで使用する様々なシェルオブジェクトを維持するかどうかは保証できません。

4
4
4
2018-07-04 11:29:13 +0000

あなたがコマンドプロンプトにある同じホールダーを圧縮したいと思うことを想像しなさい powershell の窓を開けずに:

powershell Compress-Archive . publish.zip
2
Advertisement
2
2
2018-01-18 22:50:18 +0000

ここに4つの異なるソースからの別のアイデアがあります;私のアイデアではありませんが、私はそれが私のために動作させるためにそれらをコンパイルしました

<!-- : Begin batch script
@each off

set sourceFolder="c:\test"
set destZip="%userprofile%\desktop\example.zip"

cscript //nologo "%~f0?.wsf" //job:exewsh %sourceFolder% %destZip%

exit /b
GOTO:EOF
----- Begin wsf script --->
<package><job id="exewsh"><script language="VBScript">
'Get command-line arguments.
Set objArgs = WScript.Arguments
InputFolder = objArgs(0)
ZipFile = objArgs(1)

'Create empty ZIP file.
CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar)

Set objShell = CreateObject("Shell.Application")
Set source = objShell.NameSpace(InputFolder).Items
objShell.NameSpace(ZipFile).CopyHere(source)

'Required!
wScript.Sleep 2000
</script></job>
</package>
2
2
2
2016-11-30 12:19:08 +0000

BATからPowerShellスクリプトを実行することができます。BatファイルはZIPするディレクトリのパスとZIPファイル名をパラメータとして受け取ります。

1
Advertisement
1
1
2013-11-15 04:21:10 +0000

ここでは、Windowsのネイティブコマンドを使ってファイルをZIPする方法を示している素晴らしいリンクがあります。)(https://superuser.com/questions/110991/can-you-zip-a-file-from-the-command-prompt-using-only-windows-built-in-capabili)

私は、複数の入れ子になったファイルとフォルダを含むディレクトリでそれをテストし、それは完璧に動作しました。コマンドラインのフォーマットに従ってください。

コマンドライン経由でファイルを解凍する方法もあります。1つの方法は、単に解凍されたファイルの内容が何であるかを示すエクスプローラーウィンドウを開きます。これらのいくつかはまた、必ずしもWindowsにネイティブではありませんが、それはほとんどそう思えるほど一般的であるJavaを使用しています。 [ Windows 7はデフォルトでインストールされているコマンドラインでのunzipを持っていますか?

1
1
1
2017-08-16 06:41:05 +0000

Windows はもちろん zip ファイルを使用するために組み込まれた独自の圧縮アルゴリズムを持っていますが、ここにある 7zip オープンソース製品と比較すると、それは本当に貧弱に実行されます http://www.7- zip.org/

他の人たちは、Windowsの機能を使用するための様々な方法をすでに議論してきましたが、私の解決策は、追加のソフトウェアをインストールする必要があります。

7Zipは、ZIP、RAR、CAB、ISOとそれ自身の7z形式を含むファイルの広い範囲をサポートしています。"C:\Program Files7-Zip\7z.exe」 –help

zipアーカイブに簡単な追加を行うために:

「C:\Program Files7-Zip\7z.exe」 a filename.zip c:\path

1
Advertisement
1
1
2015-01-07 14:22:03 +0000

悲しいことにコメント機能が使えないので、 WSkids の回答に関連したものを投稿します。

VBSでCopyHere()メソッドを使用すると、いくつかの問題が発生します。これらの問題の1つは、コピー処理がバックグラウンドで開始されている間にメソッドがすぐに返されるのに対し、複数のCopyHere()の呼び出しはお互いに干渉してしまい、ZIPが正しく作成されないということです。この問題を解決するために、ここでは待ちループが必要です。私の待ちループは、 ここ に投稿された同様の問題への回答に基づいています。これは、高速マシンでスクリプトを実行すると、新しく作成されたZIPファイルがアイテムコレクションに含まれるため、タイミングの問題です。

1
1
1
2015-01-22 12:27:53 +0000

ここでは、圧縮と圧縮解除のための組み込み機能のWindowsを要約するために私の試み - https://stackoverflow.com/questions/28043589/how-can-i-compres-zip-and-uncopress-unzip-files-and-folders-with-batch-f

ほぼすべてのWindowsマシン上で動作する必要がありますいくつかの与えられたソリューションと。

Advertisement
Advertisement