• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:vbscriptによる条件分岐とファイル出力)

vbscriptによる条件分岐とファイル出力

このQ&Aのポイント
  • ネットワーク監視ログをVBscriptで自動化する方法について教えてください。
  • VBscriptを使用して、ネットワーク監視ログの中の特定の文字列を検索し、条件に応じて結果ログを出力する方法を教えてください。
  • VBscript初心者ですが、ネットワーク監視ログの処理を自動化したいと思っています。正常時のログには必ず「1,2」という文字列が出力され、異常時のログには異常を知らせるコメントが3行記述されています。VBscriptを使用して、正常時のログを確認し、「1,2」の記述があれば「ネットワークは正常です」というコメントを結果ログに出力し、見つからなかった場合は異常時のログの3行目を結果ログに出力する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

1.変数の誤用を避けるため、最初にOption Explicit文を置きます。  この文があると、変数を事前定義せずに使うとエラーになります。  この文が無いと変数名を間違えてもエラーにならないので、誤動作  する可能性が高くなります。 2.Set WshShell = WScript.CreateObject("WScript.Shell") ?  使わないオブジェクトは作らないようにします。 3.ファイルアクセスオブジェクト  Dim objFs  Set objFs = CreateObject("Scripting.FileSystemObject") 4.入力ファイルオブジェクト  Dim inFle  Set inFile = objFs.OpenTextFile("C:\~", 1) '1は入力モード 5.出力ファイルオブジェクト  Dim outFile  Set outFile = objFs.CreateTextFile("C:\~", True) 'Trueは上書き可 6.テキストの読み込み  Dim text  text = inFile.ReadLine() '1行分の読み込み 7.テキスト内に"1,2"があるかを調べる  掲題のようにInStrでも良いし、RegExpを使っても良いでしょう。  http://msdn.microsoft.com/ja-jp/library/cc392403.aspx 8.条件分岐  If InStr(text, "1,2") > 0 Then     WScript.Echo "ネットワークは正常です"  Else     '3行目をtextに読み込む     outFile.WriteLine text '改行付きで書き込む  End If  '終了

msg-men
質問者

お礼

nda23さん ご連絡遅くなりすみませんでした。 無事、解決できました。 今後ともよろしくお願いいたします。

msg-men
質問者

補足

nda23さん ご返信遅くなりすみません。 ご回答頂いた情報を元に作成してみます。 結果ご連絡させて頂きます。

その他の回答 (1)

  • kiki_s
  • ベストアンサー率59% (147/248)
回答No.1

小生もvbscript初心者ですので、 答えられるかどうかは分かりませんが。 補足要求です。 >ネットワーク監視ログが毎朝出力され、そのログの中身を、各サーバにログインし手作業で確認を行っています。 ログインもVBscriptで行う? >正常時のログには必ず「1,2」と文字列が出力されます。 正常時のログファイルと異常時のログファイルは同じもの? また特定の文字列(1,2)は何行目? 正常、異常に関わらず、データは3行固定なのでしょうか? 作成したコード全体の開示はできますか? vbscriptは開発環境初が貧弱ですので、読み込みや書き込み、比較などを分解して、 それぞれコーディングする方が理解しやすいと思います。 それぞれ上手く動作したら組み合わせる訳です。 二度手間かも知れませんが、まとめてコーディングすると、 どこで間違えているか分かりません。

msg-men
質問者

補足

kiki_sさん ご返信遅くなりすみません。情報が不足でした。。 ログインは、VBscriptでは行いません。 ログファイルが対象SVからFTPで転送されてきます。 正常時と異常時のログの中身は別になります。 【正常時のログ】 WLBS クラスタ制御ユーティリティ クラスタ 192.168.100.10 ホスト 1 はクラスタに参加してから 1 回、収束状態に入りました。 前回の収束が完了したのは大体次のとおりです: 2009/05/21 14:21:12 ホスト 1 はクラスタの一部として次のホストを既定値で収束しました: 1, 2 【異常時のログ】 WLBS クラスタ制御ユーティリティ クラスタ 192.168.100.10 ホスト 1 は停止していてクラスタの収束状態を取得できません 以上がログの中身です。異常時のログは、ほぼ全て固定で出力されます。

関連するQ&A

専門家に質問してみよう