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

VBScriptにて下記のようなことができるかどうか。教えてください。よろしくお願いします。

WindowsServer2003にて、あるアプリケーションのログ(ここではdummy.logとします。)
dummy.logの内容は下記のような感じです。
------------------------------------------------------------------------
2#2009-09-15 16:35:02.680#7442#通信#○○手順:S9で受信エラーが発生しました。\r\n
ユーザニモニック(USER )\r\nファイルニモニック(FILE )\r\n
転送方向:着呼集信\r\n回線情報ID(1137)\r\n
回線グループ名(CHAKU )\r\n
回線グループ番号(8)#○○待ちで受信エラーが発生しました。
------------------------------------------------------------------------
ログの先頭には、「2009-09-15 16:35:02」というように当日のタイムスタンプが入ります。
このタイムスタンプを見て、その当日だけの日付のログを全部コピーして、別ファイル名で保存し
その別ファイル名の中の特定の文字列を参照して、文字列があった場合「エラーがありました」
とか、文字列がない場合「エラーはありませんでした」とポップアップ表示させることは可能
でしょうか。

よろしくお願いします。


●質問者: meichi
●カテゴリ:コンピュータ インターネット
✍キーワード:USER VBScript アプリケーション エラー グループ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

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

試しに書いてみました。別ファイル出力はせずに直接確認してますが。

Set oFso = WScript.CreateObject("Scripting.FileSystemObject")

Set oText = oFso.OpenTextFile("dummy.log", 1)

Set oReg = new RegExp

oReg.pattern = "エラーが発生" ←目標文字列を正規表現指定

strDate="2009-09-17" ←目標日付を指定

bLogBlock=false

Do Until oText.AtEndOfStream

strLine=oText.ReadLine

If Left(strLine,10) = "----------" Then ←行の先頭10文字が-なら区切り行

bLogBlock=false

ElseIf Left(strLine,10) = strDate Then ←行の先頭が日付に一致したら、そこから区切り行までを検査対象に

bLogBlock=true

ElseIf bLogBlock=true and oReg.Test(strLine)=true Then ←対象行について比較実施

WScript.echo "エラーが発生しました"

Exit Do

End If

Loop

◎質問者からの返答

ありがとうございます。

strDate="2009-09-17" ←目標日付を指定

目標日付の部分は当日っていうのもできるのでしょうか。


2 ● HALSPECIAL
●120ポイント

VBScriptでの実現性ということでしたら、できると思います。

FileSystemObjectオブジェクトでログファイルを読む

エラー内容をチェックし、正規表現(RegExp)でログを抜き出して別ファイル出力

といった具合です。

タイムスタンプ毎のエラー内容が複数行にわたっているので、そのブロック単位でどう抜き出すかが考えどころくらいでしょうか。

いずれにしろ、もし作るのであれば、現物のログファイルを見てみないとキチンと動作するものを作るのは難しいと思います。

◎質問者からの返答

ありがとうございます。できることはできるのですね。

関連質問


●質問をもっと探す●



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