前置き
写真データ等を圧縮率重視でRARや7zでアーカイブしている場合。PC上での操作はマシンパワーやSSD等でごまかせるため問題はありませんが、スマホや共有ファイルサーバーに置く場合は取り回しが悪くzipで置いておきたい場合があります。
こういった場合、手動ではファイルを選択しフォルダへ解凍
解凍したファイルを再度zipファイルに変換するという流れになりますが、めんどくさいのバッチにしました。バッチに7zipで解凍できるファイルを放り込めばzipファイルになります。
もちろん7zipがインストールされている必要があります。
- 7-Zipがインストールされていることが必須です
- 7-Zipは”C:\Program Files\7-Zip\”にインストールされている前提です
コード
以下のコードをコピーしてバッチファイルに保存してください。
バッチファイルに変換したいアーカイブファイルをドロップすると同じフォルダにzipファイルが出来上がります。
@echo off
set path=%path%;"C:\Program Files\7-Zip\"
for %%i in (%*) do (
7z e -o"%%~dpni" %%i
7z a "%%~dpni.zip" "%%~dpni"
rmdir /s /q "%%~dpni"
)
echo end
pause
解説
set path は7-zipのコマンドライン版の実行ファイルをバッチファイルで利用するためのおまじないです。自分のPCに合わせてインストールフォルダを指定してください。デフォルトであればそのままで大丈夫です。
for %%i ~~ はドロップしたファイルにそれぞれ処理をするループ命令ですね
7z e -oは指定したフォルダに指定したファイルの中身を解凍する命令です
“%%~dpni”で対象のファイルから拡張子を除いた文字列を作成できます
%%iはドロップしたファイル名が指定されます
7z aは圧縮命令です。その後に圧縮後のファイル名と圧縮元フォルダを指定しています。
最後にrmdirで途中で作ったフォルダを削除しています
コメント