VBSでフォルダを圧縮してリモートで移動する

デプロイをする時に作成したモジュール(WARファイルやJARファイル)を
バックアップ用のPCにVBSでリモートで移動しています。


作業した日付のフォルダを作成し、その下に時間フォルダを作成して移動しています。
そこで複数のJARファイルがフォルダに入っているものがあるのですが、
そのまま切り取って移動しようとすると、
新しく作成したフォルダは「読み取り専用」になっているので移動出来ませんでした。


色々な方法を考えたのですがうまくいかなくて
苦肉の策でフォルダごと圧縮して、ファイルにしてから移動する事にしました。


圧縮する方法も色々試したのですが、
もっとも楽チンな方法として、圧縮ツールを利用する事にしました。


圧縮ツールはLhaz v1.35 (圧縮解凍ツール)を使用します。
ツールをインストールしてから1つ設定事項があります。


インストールしたLhaz.exeをクリックし「ツール」⇒「オプション」を選択します。


圧縮タブを選択し、「一発圧縮」ラジオボタンの「このフォルダに圧縮」を選択します。


ツールの設定が完了した後、下記のVBSを実行すると圧縮してから移動します。

'変数定義
Dim wShell      ' shellオブジェクト
Dim oExec       ' execオブジェクト
Dim objFSO      ' ファイルシステムオブジェクト   
Dim pathFrom    ' 移動元パス
Dim pathTo      ' 移動先パス

pathFrom = "C:\LhazTest\test"
pathTo   = "C:\LhazTest2\test.lzh"

Set wShell = CreateObject("WScript.Shell")

Set oExec  = wShell.Exec("C:\Program Files\Lhaz\Lhaz.exe " & pathFrom)

Set objFSO = CreateObject("Scripting.FileSystemObject")

pathFrom = pathFrom & ".lzh"

'' 圧縮ファイルが生成されるまでループする
While Not objFSO.FileExists(pathFrom)
Wend

objFSO.MoveFile pathFrom, pathTo

なんとか力技で解決しました(;´▽`A