【VBScript】ファイルを圧縮する方法を調べてみた

VBScript
スポンサーリンク

こんにちは朱夏です。

今回は、ファイルを圧縮する方法を調べてみました。
前回ログファイルをコピーする事が出来ました。
今回はコピーして持ってきたファイルを、圧縮して保管しておきたい時に使おうと思って調べました。

それではいってみましょう。

 

[もくじ]
ファイル圧縮の書き方
ファイルコピーから圧縮までを合体
あとがき

 

ファイル圧縮の書き方

今回はこちらのサイトを参考にさせていただきました。

 

 

出来上がったコードはこちらになります。

 

ポイントになるのは以下の3つでした

  1. 空のzipファイルを先に作成
  2. zipファイルにはヘッダが必要
  3. 対象ファイルを後から格納

 

新しく出て来た処理の説明。

 

CreateObject(“Shell.Application”)

WindowsのShellアプリケーションを呼び出すオブジェクトです。
FileSystemObjectに続き2つ目のですね。
今回はzipファイルへ格納する処理をするのにこれを使っています。

 

 

ファイルコピーから圧縮までを合体

前回のファイルコピー処理と合体させて、圧縮までを1つの処理として実行する様にしてみました。

コードはこんな感じです。

 

 

動作の流れとしては次の様な処理になります。

  1. F:\vbs学習\20200519\log\dummy.logをコピー
  2. F:\vbs学習\20200519\backup\へ
    ファイル名dummy_yyyymmddHHMMSS.logで貼り付ける
  3. F:\vbs学習\20200519\logフォルダにyyyymmddHHMMSS.zipを作成
  4. yyyymmddHHMMSS.zipにヘッダー情報を書き込む
  5. F:\vbs学習\20200519\backup\内のファイルを
    yyyymmddHHMMSS.zipへ格納

 

本当は格納する対象をファイル1つだけ指定したかったのですが、今の状態だとフォルダ内全てを圧縮してしまいます。
回避方法として思いつくのは、ファイルをコピーして来る時に、タイムスタンプのフォルダーを新規で作成してそこに貼り付けるくらいですかね。
これならタイムスタンプのフォルダーを指定すればコピーした対象ファイルのみ圧縮できます。

 

あとがき

というわけで、今回はファイルの圧縮方法について調べてみました。

今回のまとめはこちら。

  • 空のzipファイルを先に作成
  • zipファイルにはヘッダが必要
  • 対象ファイルを後から格納

 

プログラミング全般に言える事ですが、1つの言語で出来ない処理を、別の言語で実現させてつなぎ合わせるといった事が良くあるように感じます。

一つの言語にこだわらず、色々試してみると、問題解決の方法が見えてくる場合があるかもしれないと思いました。

今回は以上です。
次回もよろしくお願いします。

 

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