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