アフィリエイト広告を利用しています

広告

posted by fanblog

微妙なVBSB

あいうえおぉぉつかれ。inukoroです。|電柱|・ω・`)ノ ヤァ


昨日は眠くて途中で終了してしまったーーー。ごめんなさい。

3:00過ぎに寝て6:00に目が覚めてしまった。(θωθ)

もう不規則な生活で眠くなったりならなかったりでつ・・・・

とりあえず、今日は残りを説明してしまうのだけど。。。

xls部分はちょこっとだけ省略した説明の仕方をしまつね。


まず、VBSだけど・・・・

昨日説明したイベントログの抽出処理では、余分なものまで抽出してしまう。それをどけるために(今回必要な時間のみを抽出)置換処理とリダイレクト処理を行います。(今のinukoroなら、配列を使用してもっとうまく記述できるのですが、昔のまま説明)


↓時刻だけがほしいのね。

------------------------------------------------------------------------------
------------------------------------------------------------------------------


------------- ------ ------------------------ ----------------- --------------
Type Event Date Time Source ComputerName
情報 6005 2011/06/22 19:53:15 EventLog 秘密やでー。
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
Microsoft (R) Windows Script Host Version 5.7
ホスト ’PC名内緒ね。’の 'system' ログのイベントを一覧表示しています。






↓置換ソース

'********************************ファイル置換プロシージャ********************************
function replacetest(patrn,replstr)

dim regex,str1

set reptxt = createobject("scripting.filesystemobject")'読み込みファイル
set repobjtxt=reptxt.opentextfile("D:\test\tmp.txt")

set reptxt2 = createobject("scripting.filesystemobject")'書き込みファイル
set repobjtxt2 = reptxt2.opentextfile(targetpass2,8) '8で追記やで。


set regex = new regexp
regex.pattern = patrn'検索パターン(この場合07が入るんやね。置換前の文字!)
regex.ignorecase = true'大文字小文字は区別しなーい。


do until(repobjtxt.atendofstream)'ファイルの最後まで(EOF)まで読むんやね。

line = repobjtxt.readline’これをコールするたびに1行さがるんやね。

replacetest=regex.replace(line,replstr)'7が07になるんやね。
repobjtxt2.writeline replacetest'テキストに吐き出す。
loop


repobjtxt.close
repobjtxt2.close

end function

'********************************ファイル置換プロシージャ********************************




↓コール部分。”targetpass0”はリダイレクトしたtmp.txtのフルパスね。

'----------------------------置換コール----------------------------------------------
dim a
a=replacetest(" 7:"," 07:")
set tmpx=createobject("wscript.shell")
'再ソート
tmpx.run "cmd /c type " & targetpass0 & " | sort > 置換ソート.txt",0

wscript.sleep 2000
'------------------------------------------------------------------------------------


↑テキスト整形する前に、7ではなく、07にしたいの。なぜなら、時系列にソートかけるときに、batはそんなに賢くできてないので、7:30と11:30を比較すると、7:30のほうが大きいと解釈するのさ。

まぁ、sortする際のスイッチが右から何番目〜とかそういう感じなので、1と7を比較して多きいほうを決定してしまうんやね。
・・・・"07"と直しておきたい。



では次に・・・・
tmp.run "cmd /c type " & targetpass1 & " | findstr /i 情報 > tmp2.txt" ,0

と記述し、時刻の行だけリダイレクトするのじゃー。。。

ここまでで、
情報 6005 2011/06/22 19:53:15 EventLog 秘密やでー。
のがたくさん抽出できたと思うなり。

んじゃ、後は、上記を時系列に並べつつ、midで時間だけ抽出して、リダイレクトすればOKやね。




set objtxt=optxt.opentextfile(targetpass4)
set objtxt2 = optxt2.opentextfile(targetpass3,8)



do until(objtxt.atendofstream)

line = objtxt.readline



objtxt2.writeline mid(line,21,19)'右から21番目開始、19文字抽出。



loop



objtxt.close
objtxt2.close


変数系はフルソースで解釈してちょ。m(_ _)m


ほいじゃ、ここまでで、時間だけが列挙された、テキストができたと思うなり。

あとは、xlsに吐き出して、表にするだけ。

んじゃ。次回ねん。

ヾ(* ̄▽ ̄*)Bye


---------------------------------------------------------------------------------------------------------------------













レンタルサーバー 【ヘテムル】 なら、
独自ドメイン【無制限】、データベース【50 個まで】を追加費用無料で設定できます。
しかも、サーバー容量は余裕の 42.195GB!
1 つの契約でたくさんのサイトを運営したい方にぴったりのサービスです。



あなたのサイトでダウンロード販売!
その日のうちに開設可能!
初回、月々固定費用は無料!
デジタルデータなら何でも販売可能!
お試し感覚で始めてみよう!
詳しくはデジマーケットへ


急げ!新ドメインは早いもの勝ち!



チカッパプラン 詳細はこちら




この記事へのコメント

   
×

この広告は30日以上新しい記事の更新がないブログに表示されております。