概要
batと同じ階層のフォルダ毎にzip圧縮する作業を自動化するbatファイルの紹介。WinRAR使用。ソース
メモ帳にコピペしてbatにしてください。rem カレントディレクトリのフォルダをすべてzipにする。 @echo off echo start program echo rem 拡張子。zipかrarを指定する。 set a=zip rem winrar.exeがあるディレクトリの指定 set b="C:\Program Files\WinRAR\WinRAR" for /d %%i in (*) do echo %%i&%b% a -ibck -df "%%~ni.%a%" "%%i" echo echo end program PAUSE
<2021/11/13追記> GoogleDriveのリンク権限が切れたのでソースを直接貼っときます。
仕様
- 実行したディレクトリ直下のフォルダのみを全てフォルダ毎に圧縮する。
- 圧縮したフォルダとその中身は削除します。
- エラーが出たらエラー画面(WinRARのもの)が出て、エラー画面を閉じると次のフォルダの圧縮を実行します。エラーを無視して進めたいときはforの部分の [a -df]の間に[-inul]と追加してください。
- 今何を圧縮しているか表示するようにしました。 (12/22)
- 拡張子の前のドット以外で、ファイル名にドットがあるとファイル名が途切れてしまうので注意。
使い方
- 上のソースをメモ帳にコピペして「~(何でもいい).bat」と保存し、実行したいディレクトリにコピーして実行。
- ソースに書いてあるけどzipかrarの指定、WinRAR.exeのパス指定(インストールした場所にある)には注意。32bitPCか、64bitPCで64bit版を使用し、デフォルトでインストールしていれば気にする必要はありません。
こんにちは。大量のファイル圧縮で便利に使用させていただいています。
返信削除拡張子以外のドットでファイル名が途切れてしまうのはどうしようもないのでしょうか?ミスチルなど必ず名前にドットが入る場合があり困っています。
batファイルで処理するには仕様的に無理だとおもいます。
削除正規表現が使えるスクリプト言語で組めば容易ですが、ちょっとお勉強しないとできないです。すみません。