vbscript初心者です。ご教授頂けますと幸いです。
ネットワーク監視ログが毎朝出力され、そのログの中身を、各サーバにログインし手作業で確認を行っています。
この作業を、VBscriptで行いたいと思っているのですが、どうもうまくいかず困っています。
正常時のログには必ず「1,2」と文字列が出力されます。
この文字列を検索対象にして、「1,2」の記述があれば、新規の結果確認ログに「ネットワークは正常です」とコメントを付けて、ファイルを出力し、
「1,2」が見つからなかった場合は、そのログファイルの3行目のみを、新規の結果ログファイルに抽出する、VBscriptを作成したいと思っています。
異常時のログファイルには、異常を知らせるコメントが3行記述されてます。必要な行は、3行目だけなので、3行目を結果ログとして出力したい。
以下、構文ですがVB初心者であり、色々なサイトを見て作ってみましたが全然動かず今回、ここに投稿しました。
'検索対象のテキストファイルのオープン
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objFs = CreateObject("Scripting.FileSystemObject")
Set objFs = Fs.OpenTextFile(NlbTmp)
If Instr(A,"1,2") > 0 Then
MsgBox "ネットワークは正常です"
Else
”異常の場合の条件分岐が分からず・・・”
Set oText = CreateObject("Scriptting.FileSystemObject").CreateTextFile( 結果ログ.log, True )
str = Fs.ReadLine
Fs.WriteLine(str)
End If
自分で作成するのが初めてな物で本当によろしくお願い致します。
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 …
8.条件分岐
If InStr(text, "1,2") > 0 Then
WScript.Echo "ネットワークは正常です"
Else
'3行目をtextに読み込む
outFile.WriteLine text '改行付きで書き込む
End If
'終了
No.1
- 回答日時:
小生もvbscript初心者ですので、
答えられるかどうかは分かりませんが。
補足要求です。
>ネットワーク監視ログが毎朝出力され、そのログの中身を、各サーバにログインし手作業で確認を行っています。
ログインもVBscriptで行う?
>正常時のログには必ず「1,2」と文字列が出力されます。
正常時のログファイルと異常時のログファイルは同じもの?
また特定の文字列(1,2)は何行目?
正常、異常に関わらず、データは3行固定なのでしょうか?
作成したコード全体の開示はできますか?
vbscriptは開発環境初が貧弱ですので、読み込みや書き込み、比較などを分解して、
それぞれコーディングする方が理解しやすいと思います。
それぞれ上手く動作したら組み合わせる訳です。
二度手間かも知れませんが、まとめてコーディングすると、
どこで間違えているか分かりません。
この回答への補足
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が見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
accessでクエリをExcelにエクス...
-
CSVファイルの時刻の形式について
-
COBOL、項目末尾に空白がある場...
-
Excel で「OLE は現在使用でき...
-
アクセス→エクセルへエクスポー...
-
VB.NET操作で Excelにビットマ...
-
MDI形式のファイルから文字をき...
-
Acrobat参照設定
-
COBOL FILLER
-
特定健診出力のXMLをCSV...
-
WshShellから起動したbat(ftp)...
-
ACCESS2002(or2003)の日付表示...
-
【Excel VBA】取り込んだファイ...
-
ATTファイルってどうやって開け...
-
0バイトのテキストファイル
-
VB2008 iniファイルの全セクシ...
-
C#でtiffファイルのページ数を取得
-
Eclipseで検索ができなくなった
-
HTMLテキストリンクでExcelファ...
-
既存のテキストファイルを開く方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
accessでクエリをExcelにエクス...
-
CSVファイルの時刻の形式について
-
コマンドプロンプトのテキスト...
-
COBOL、項目末尾に空白がある場...
-
Thunderbird 受信メールからの...
-
ファイナルカットで編集した動...
-
Excel で「OLE は現在使用でき...
-
Acrobat参照設定
-
VB6.0でExcel,PDF,Word出力方法
-
AccessのレポートからPDFをペー...
-
ショートカットで起動した場合...
-
EXCEL VBAでのCSVファイル読み...
-
COBOL FILLER
-
VB.NET操作で Excelにビットマ...
-
ACCESS エクスポート ダイアロ...
-
iTextでPDFを表示させたら日本...
-
PHP:unzipコマンドにおけるエ...
-
accessのリポートを、excelに出...
-
“ファイルに出力”した印刷ファ...
-
javaのxmlファイル出力をするウ...
おすすめ情報