- blogs:
- cles::blog
2018/11/22

undll.exe と 7-zip32.dll でコマンドラインから zip ファイルを作る



Windows のコマンドラインから zip ファイルを作ろうとしたらいろいろと苦労してしまったので、忘れないうちにその顛末のまとめ。
まず、Windows には標準で zip を扱うためのコマンドは用意されておらず、.NET Framework や PowerShell の機能を呼出す必要があります。具体的には .NET Framework にある IO.Compression.ZipFile*1 や PowerShell の Compress-Archive*2 などになります。
実際にこれらを使って Windows のコマンドラインからフォルダを圧縮して zip ファイルにするには、以下のような感じになるようです。
:::PowerShell
powershell compress-archive "path\to\dir\*" "path\to\dir.zip"
:::.Net Framework
powershell -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('path\to\dir.zip', 'path\to\dir'); }"
ところが、どうもこれらはファイルの圧縮時に改行コードあたりを弄ってしまうようなので、なるべく副作用が少ない方法を調べていて以下の undll.exe と 7-zip32.dll を使う方法にたどり着きました。
上記のサイトから zip ファイルをダウンロードして展開し、undll.exe は 7-zip32.exe にリネームしておきます。
あとは以下のような感じのコマンドを実行すると、前述の PowerShell や .Net Framework と同等の機能が実現できます。
:::undll.exe + 7-zip32.dll
7-zip32.exe a -tzip ..\quotecolors.zip path\to\dir\ -r "*"
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/10590
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . アーロンチェアのポスチャーフィットを修理(114308)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(112851)
3 . 年次の人間ドックへ(112293)
4 . 2023 年分の確定申告完了!(1つめ)(111858)
5 . 三菱鉛筆がラミーを買収(111736)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(112851)
3 . 年次の人間ドックへ(112293)
4 . 2023 年分の確定申告完了!(1つめ)(111858)
5 . 三菱鉛筆がラミーを買収(111736)
cles::blogについて
Referrers