ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

VBSプログラミングコミュの●バックアップツールの作成 第2回

  • mixiチェック
  • このエントリーをはてなブックマークに追加
by loop_kaz
date 2006/5/2
ver 1.00

とりあえず、ソースを。

--- START ---------------------------------------------------------------

' by loop_kaz
' date 2006/4/8
' ver 1.00


'変数の宣言
'FileSystemObject
'丸ごとコピー

Dim FSO
'コピー元
Dim path_before
'コピー先
Dim path_after

path_before="c:\test"
path_after="d:\test"

'インスタンスを作成
Set FSO = CreateObject("Scripting.FileSystemObject")


'旧フォルダ削除
If FSO.FolderExists(path_after)=TURE Then
FSO.DeleteFolder path_after,TRUE
FSO.CreateFolder path_after
Else
FSO.CreateFolder path_after
WScript.Echo path_after & " :新規フォルダ作成しました。"
End If


'フォルダコピー
FSO.CopyFolder path_before,path_after

'オブジェクト変数を開放する
set FSO = nothing




--- END ---------------------------------------------------------------

ファイル名は『case001-02.vbs』で、保存してください。


前回とほぼ同じですが、追加した部分は、コピー先に既にフォルダがあった場合、
上書き保存となります。
よって、既にコピー先にファイルがあって、コピー元にファイルがない場合、
コピー元と先のファイル数が一致しません。


そこで、既にコピー先のフォルダがあれば、それをいったん削除し、
フォルダを新規で作成してから、フォルダのコピーを行うというものです。
(フォルダ内容:A=B)


『FSO』変数の『FolderExists』関数の第1引数に対象のフォルダを指定すると、
その対象のフォルダが存在するかどうか判定します。
なければ、FALSE、あれば、TRUEを返します。

そこで、コピー先のフォルダが既にあれば、
?コピー先のフォルダを削除する。
『FSO』変数の『DeleteFolder』関数の第1引数に削除対象のフォルダ名(パス付)で
指定します。
第2引数のTRUEは、【読み取り専用のフォルダを削除するかどうか。】です。


?コピー先のフォルダを作成する。
『FSO』変数の『DeleteFolder』関数の第1引数に作成対象のフォルダ名(パス付)で
指定します。


なければ、
?コピー先のフォルダを作成する。
『FSO』変数の『DeleteFolder』関数の第1引数に作成対象のフォルダ名(パス付)で
指定します。

のみを、実行します。



といわけで、少しはプログラムっぽくなってきました。

次回はフォルダのコピーだけを行っても、バックアップツールとはいえません。
なぜならば、同じフォルダがコピー先だといつも、最新になり、履歴が取れません。
そのあたりをうまくやっていこうと思います。


以上

コメント(0)

mixiユーザー
ログインしてコメントしよう!

VBSプログラミング 更新情報

VBSプログラミングのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。