windows バッチでLhaplusによる指定フォルダ配下のフォルダ圧縮

スポンサーリンク

自宅で仕事していたときに、

指定したフォルダ配下のフォルダ全部圧縮したい!
ということがありました。
普段はLhaplusを使用しているので、
これをwindows バッチで一撃で行うときに書いたプログラムを紹介します。

set /p targetPath="対象パスは? ="
cd /d "%targetPath%"
for /D %%i in ("%targetPath%\*") do "<Lhaplus.exeのパス>" /oc:"%targetPath%" /c:zip "%%i"
pause

※先の投稿にて記載しましたとおり、Crayon Syntax Highlighterというプラグインを入れまして、早速使ってみました。コードの記載はカッコイイですね!

 

さて、これでもいいんですが、そういえばこのフォルダExcelファイルだけの想定だったなと思いいたりまして、パス指定したらExcelファイル以外が存在しないことを先にチェックしたいなと思いました。

そこで改良。

echo off
set /p targetPath="対象パスは? => "
cd /d "%targetPath%"
dir /s /b /a-d | find /v /i "xlsx" | find /v /i "xlsm"
set /p judge="OK? y/n => "
if "%judge%"=="y" (
	for /D %%i in ("%targetPath%\*") do "<Lhaplus.exeのパス>" /oc:"%targetPath%" /c:zip "%%i"
)
pause

 

パスを指定したら、その配下のフォルダの中に「xlsx」か、「xlsm」のファイル以外のものがあれば内容が出力され、それがないことを確認できるよう「おk?」と聞いています。

これで結構楽できるなー。

※当初、targetPathのところ、いつもの感じでpathという名前にしてたんですが、

そうすると「findコマンドが見つからないよ」というエラーになり、

「えー?なんで?」ということになりしばらくハマってしまいました。

よく考えたらpathは環境変数の設定先じゃないですか!それを上書きしちゃってたので、

findが見つからなかったということですね。お恥ずかしい限りです。。。

コメント

タイトルとURLをコピーしました