人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

http://q.hatena.ne.jp/1243299574 の関連なのですが、
一点気が付いたことがありまして・・・・
いただいたVBSでARCServeのジョブレポートを毎日参照すること
は可能なのですが、お客様の環境で 土 日 はバックアップ
をしていないです。
ということは、土 日 もARCServeのジョブレポートが作成されます
ので 金曜日のジョブレポートの参照はできないのではないでしょうか。
金曜日のジョブレポートを参照するには、
VBSで可能でしょうか。すいませんが、まず できるか できないか
をご教示ください。よろしくお願いします。

●質問者: meichi
●カテゴリ:コンピュータ インターネット
✍キーワード:VBS お客様 ジョブ バックアップ レポート
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● fester
●120ポイント ベストアンサー

土日のバックアップファイルは除外するということでしょうか?

であれば、次のようになります。


Option Explicit '変数宣言を強制
Const TARGETFOLDER = "D:\ARCServeBackup" 'ログファイルの格納フォルダ ←★ここを変える。このフォルダ中のログファイルをチェック
Const FILEPREFIX = "Daily Backup Status Report_data_" 'ファイル名のパターン 先頭からこのパターンのファイルを対象とする
Const ForReading = 1, ForWriting = 2, ForAppending = 8 'ファイル操作の定数
Const TITLE = "ARCServeのバックアップ" 'ダイアログのタイトル

'最新のファイルを探す。ファイルの作成日の最も新しいファイルを取得する。
Dim fso, folder, file
Set fso = WScript.CreateObject("Scripting.FileSystemObject") 'ファイル操作のオブジェクトを生成
Set folder = fso.GetFolder(TARGETFOLDER) 'フォルダオブジェクトを作成

Dim prefixLen 'ファイル名のプレフィクスの長さ
Dim lastDate '作成日
Dim lastFile '新いファイル
prefixLen = Len(FILEPREFIX) 'ファイル名のプレフィクスの長さを取得
lastDate = CDate(0) '作成日の初期化
lastFile = "" '新いファイル名の初期化

'フォルダ中のファイルを列挙
For Each file In folder.Files
If Left(file.Name,prefixLen) = FILEPREFIX Then
'ファイル名がプレフィクスに合致している場合
Dim d, f, w
d = file.DateCreated
f = file.Name
w = Weekday(d)
If w = vbSaturday Or w = vbSunday Then
'土日のバックアップファイルは除外
Else
If CDate(lastDate) < CDate(d) Then
'最新のファイルをキープする
lastDate = d
lastFile = f
End If
End If
End If
Next

'ファイルが見つからない場合はエラー
If lastFile = "" Then
MsgBox "ARCServeのバックアップログがありません。", vbExclamation, TITLE 'メッセージを表示
Set fso = Nothing 'オブジェクトの破棄
WScript.Quit '終わり
End If

'ファイルを開いて内容をまるごと取得
Dim strALL 'ファイルの内容
Set file = fso.OpenTextFile( TARGETFOLDER & "\" & lastFile, ForReading ) 'ファイルを開く
strALL = file.ReadAll 'ファイルの内容をまるごと取得
file.Close 'ファイルを閉じる
Set fso = Nothing 'オブジェクトの破棄

If InStr(strALL,"完了") > 0 Then
'完了の文字が含まれていたら成功のメッセージを表示。
MsgBox "バックアップに成功しました" & vbCrLf & vbCrLf & lastFile, vbInformation, TITLE
Else
'完了の文字が含まれていない場合は失敗のメッセージを表示。
MsgBox "バックアップは失敗しました" & vbCrLf & vbCrLf & lastFile, vbCritical, TITLE
End If


ただし最新ファイルの判断はファイルの作成日になっています。

ファイル名から判断していません。

ファイル名から判断したほうがよいとなると修正が必要です。

YYYY-MM-DD-o'clock-minutes-seconds

の部分は例として

2009-05-27-09-45-50

という表記ですか?

(すべてハイフン区切りでしょうか?)

実はこの部分が明確でなかったのでファイル作成日から判断するようにしてあります。

正確に知りたいところです。

◎質問者からの返答

すいません、早速ありがとうございます。m(_ _)m

>2009-05-27-09-45-50

>という表記ですか?

>(すべてハイフン区切りでしょうか?)

上記おっしゃるとおりです。

あと、大変すいません。

土日以外の祭日を含む場合ですが、下記の例のような場合 翌日の

3日に1日のジョブの失敗が確認できないのではないでしょうか。

例)

1日(水) 営業日 ジョブ失敗

2日(木) 祭日 ジョブ完了

解決方法はありますでしょうか。よろしくお願いします。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ