ゆるふわSEの日常♪

IT業界でゆるふわSEになりたい人あーつまれ(*´▽`*)♪

【明日使えるバッチファイル】複数ファイルを結合し、ZIPでフォルダごと圧縮しちゃおう♪(●´ω`●)✨~ご家庭でも業務でも大活躍?!~

f:id:senonichijo:20180505152039p:plain

おはこんばんちは!ゆるふわSEの「ゆるちょここ」です♪(*´ω`*)

 

明日から使える?かもしれないソースを紹介していく明日使シリーズ!!!

今回は複数ファイル(テキストやCSVファイル)の結合とそのZIP圧縮という便利バッチのご紹介です♪

※ZIP圧縮はバッチのみの標準機能では厳しそーだったのでVBScriptちゃんの力を借りています(●´ω`●)✨

 

ファイルの結合やZIP圧縮それぞれに言及した記事はネットの世界に転がっていたのですが、これらを合わせた形のものはなかったので全世界初公開の処理内容になっていますw

ご家庭でも業務でもきっと大活躍してくれると勝手に思っていますので、みんな大好きソースのコピペでいくらでも引用しちゃってくださいw

 

では早速、紹介していくよ♪

 

 

 

今回のサンプル構成※作る必要があるもの等

■サンプルフォルダ構成

f:id:senonichijo:20180321181633p:plain

フォルダ「C:\TestFolder」内に下記4つのファイルを作っていますー。

①logフォルダ:結合したい複数ファイルを格納したフォルダ

※サンプルとしてaaa.logとbbb.logファイルを格納

②srcDirフォルダ:結合したファイルを格納するフォルダ

③CombineAndZip.bat:「logフォルダ」内の複数ファイルを結合し、「srcDirフォルダ」に格納。その後vbsを呼び出すことで「srcDirフォルダ」をzip圧縮する処理を実施する今回のメイン処理バッチファイル。

④CreateZip.vbs:「CombineAndZip.bat」から呼び出されるzip圧縮処理のVBScriptファイル。

 

使い方、処理内容☆彡

バッチファイルをダブルクリックすると、「logフォルダ」内の複数ファイルが結合され、「srcDirフォルダ」に格納(ファイル名:all.txt)。「srcDirフォルダ」をC:\TestFolder内にzip圧縮します(ファイル名:dst.zip)

 

実行結果

下記のように結合されたファイルが格納されたフォルダがzip圧縮されます。

f:id:senonichijo:20180321182454p:plain

 

※下記ソースコードの赤字の部分は適宜変更してください。

そーすこーど①☆彡:CombineAndZip.bat

@echo off

rem 複数ファイルを結合する。
copy C:\TestFolder\log\*.log C:\TestFolder\srcDir\all.txt

rem 特定のフォルダを圧縮するvbsを呼び出す。
cscript CreateZip.vbs

 

そーすこーど②☆彡:CreateZip.vbs

InputFolder = "C:\TestFolder\srcDir"  'ZIP圧縮したいファイルのあるディレクトリ名
ZipFile     = "C:\TestFolder\dst.zip" '圧縮してできたZIPファイルにつける名称

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)
wScript.Sleep 2000

 

参考にしたサイト様

バッチファイル

https://digimamalife.com/howto-merge-csv-files 

VBScript

http://funcs.org/1123

 

でゎでゎ☆彡