L1+PROCESS CNT マクロ化
- depth:
- 0
前の投稿
-
次の投稿
|
親投稿
-
子投稿なし
|
投稿日時 2010-4-18 18:11
ゲスト
投稿数: 0
'********変数強制宣言********
Option Explicit
'********フラグ変数定義********
Dim FRAG_0 , FRAG_HANTEI
'********オブジェクト変数定義********
Dim FSO , CSV , LOG , BYTE0 , WSHShell
'********配列宣言************
Dim SERCH_CHR(1) , SERCH_CNT(1)
'********カウント変数宣言************
Dim i , READ_LINE , CNT
'********フォルダ変数宣言************
Dim MAIN_DIR , SERCH_DIR , LOG_DIR , OUT_DIR , BAT_DIR
'********ファイル変数宣言************
Dim SERCH_FILE , SERCH_FILENAME
Dim LOG_FILE , LOG_FILENAME
Dim OUT_FILE , OUT_FILENAME
Dim BAT_FILE , BAT_FILENAME
'********メッセージ変数宣言********
Dim CSV_OK_MESSAGE , RECV_NG_MESSAGE
Dim KENSU_OK_MESSAGE , KENSU_0_MESSAGE , KENSU_0_CHECK_MESSAGE
'********その他変数宣言************
Dim LINE , MESSAGE_LINE
'********初期設定********
MAIN_DIR = "D:\IE\"
SERCH_DIR = MAIN_DIR & "\CNT\temp"
SERCH_FILE = "RESULT.log"
SERCH_FILENAME = SERCH_DIR & "\" & SERCH_FILE
LOG_DIR = MAIN_DIR & "\CNT\LOG"
LOG_FILE = "CNT_CHECK_LOG.txt"
LOG_FILENAME = LOG_DIR & "\" & LOG_FILE
OUT_DIR = MAIN_DIR & "\SE\SD"
OUT_FILE = "P2.txt"
OUT_FILENAME = OUT_DIR & "\" & OUT_FILE
BAT_DIR = MAIN_DIR & "\CNT\BAT"
BAT_FILE = "L1.bat"
BAT_FILENAME = BAT_DIR & "\" & BAT_FILE
i=0
FRAG_0=0
FRAG_HANTEI=0
SERCH_CHR(0)="T"
SERCH_CHR(1)="W"
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set CSV = FSO.OpenTextFile(SERCH_FILENAME)
Set LOG = FSO.OpenTextFile(LOG_FILENAME, 2, True)
Set WSHShell = WScript.CreateObject("WScript.Shell")
CSV_OK_MESSAGE = "ファイルの抽出が正常に完了致しました。"
RECV_NG_MESSAGE = "受信処理に失敗した為、正常に受信出来ませんでした。"
KENSU_OK_MESSAGE = "変換件数の取得が正常に完了致しました。"
KENSU_0_CHECK_MESSAGE = "0件判定結果が正常に完了致しました。"
KENSU_0_MESSAGE = "件数が0件の為、" & OUT_FILE & "を自動作成致しました。" & vbCrLf & _
"データ処理は終了して下さい。"
'********処理開始時間********
CALL LOG_LINE(LINE,"メイン","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'********ファイル抽出処理********
CALL MESSAGE("ファイル抽出処理","開始")
LOG.WriteLine(MESSAGE_LINE)
LOG.WriteBlankLines(1)
Do Until CSV.AtEndOfStream
READ_LINE = CSV.ReadLine
If InStr(READ_LINE, SERCH_CHR(i)) <> 0 then
SERCH_CHR(i) = READ_LINE
i=i+1
END IF
Loop
CSV.Close
LOG.WriteLine(CSV_OK_MESSAGE)
LOG.WriteBlankLines(1)
CALL MESSAGE("ファイル抽出処理","終了")
LOG.WriteLine(MESSAGE_LINE)
LOG.WriteBlankLines(1)
'********変換件数取得処理********
CALL MESSAGE("変換件数取得処理","開始")
LOG.WriteLine(MESSAGE_LINE)
LOG.WriteBlankLines(1)
SERCH_CNT(0) = Mid(SERCH_CHR(0), 10)
SERCH_CNT(1) = Mid(SERCH_CHR(1), 8)
LOG.WriteLine(KENSU_OK_MESSAGE)
LOG.WriteLine("変換前件数 : " & SERCH_CNT(0) & " 件")
LOG.WriteLine("変換後件数 : " & SERCH_CNT(1) & " 件")
LOG.WriteBlankLines(1)
CALL MESSAGE("変換件数取得処理","終了")
LOG.WriteLine(MESSAGE_LINE)
LOG.WriteBlankLines(1)
'********0件判定処理********
CALL MESSAGE("0件判定処理","開始")
LOG.WriteLine(MESSAGE_LINE)
LOG.WriteBlankLines(1)
IF SERCH_CNT(0)=SERCH_CNT(1) then
CNT=SERCH_CNT(0)
IF CNT<>0 then
FRAG_0=1
ELSE
Set BYTE0 = FSO.CreateTextFile(OUT_FILENAME, True)
BYTE0.Close
END IF
ELSE
FRAG_HANTEI=1
END IF
LOG.WriteLine(KENSU_0_CHECK_MESSAGE)
LOG.WriteBlankLines(1)
CALL MESSAGE("0件判定処理","終了")
LOG.WriteLine(MESSAGE_LINE)
LOG.WriteBlankLines(1)
'********判定結果出力処理********
CALL MESSAGE("判定結果出力","開始")
LOG.WriteLine(MESSAGE_LINE)
LOG.WriteBlankLines(1)
IF FRAG_HANTEI=0 then
LOG.WriteLine("データを " & CNT & " 件 正常に受信致しました。")
IF FRAG_0=0 then
LOG.WriteLine(KENSU_0_MESSAGE)
END IF
LOG.WriteBlankLines(1)
ELSE
LOG.WriteLine(RECV_NG_MESSAGE)
LOG.WriteBlankLines(1)
END IF
CALL MESSAGE("判定結果出力","終了")
LOG.WriteLine(MESSAGE_LINE)
LOG.WriteBlankLines(1)
'********処理終了時間********
CALL LOG_LINE(LINE,"メイン","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'********メール配信処理********
WSHShell.Run BAT_FILENAME
Set FSO = Nothing
WSCRIPT.QUIT
'★サブルーチン★-------------------------------------------------------------------------------
Sub MESSAGE(LINE_MSG, ACTION)
MESSAGE_LINE = "★★★************** " & LINE_MSG & ACTION & " **************★★★"
End Sub
SUB LOG_LINE(LINE,SHORIMEI,ACTION)
'********時間変数宣言********
Dim YYYY , MM1 , DD , HH , MM2 , SS , PRIME_DATE , PRIME_TIME
YYYY = Year(DATE)
MM1 = Right("0" & MONTH(DATE), 2)
DD = Right("0" & DAY(DATE), 2)
HH = Right("0" & Hour(TIME), 2)
MM2 = Right("0" & Minute(TIME), 2)
SS = Right("0" & Second(TIME), 2)
PRIME_DATE = YYYY & "/" & MM1 & "/" & DD
PRIME_TIME = HH & ":" & MM2 & ":" & SS
LINE = "★★★************** 処理日 = " & PRIME_DATE & " " & SHORIMEI & "処理" & ACTION & "時間= " & PRIME_TIME & " **************★★★"
END SUB
'********変数強制宣言********
Option Explicit
'********オブジェクト変数定義********
Dim wbemServices , FSO , LOG , WSHShell , PROCESS_OBJ
'********フォルダ変数宣言************
Dim MAIN_DIR , BAT_DIR , LOG_DIR
'********ファイル変数宣言************
Dim BAT_FILE , BAT_FILENAME
Dim LOG_FILE , LOG_FILENAME
'********メッセージ変数宣言********
Dim TITLE , MESSAGE , LOG_MESSAGE
'********その他変数宣言********
Dim strComputer
'********定数設定********
Const PROCESS = "select * from Win32_Process where Name='NOTEPAD.EXE'"
'********初期設定********
strComputer = "."
MAIN_DIR = "D:\PROCESS"
BAT_DIR = MAIN_DIR & "\BAT"
BAT_FILE = "test.bat"
BAT_FILENAME = BAT_DIR & "\" & BAT_FILE
LOG_DIR = MAIN_DIR & "\LOG"
LOG_FILE = "CHECK_LOG.txt"
LOG_FILENAME = LOG_DIR & "\" & LOG_FILE
Set wbemServices = GetObject("winmgmts:\\" & strComputer)
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set LOG = FSO.OpenTextFile(LOG_FILENAME, 8, True)
Set WSHShell = CreateObject("WScript.Shell")
Set PROCESS_OBJ = wbemServices.ExecQuery(PROCESS)
TITLE="メッセージ"
MESSAGE = "未稼働"
LOG_MESSAGE = NOW & " " & MESSAGE
'********処理開始********
IF PROCESS_OBJ.Count = 0 then
LOG.WriteLine(LOG_MESSAGE)
WSHShell.Run BAT_FILENAME
Msgbox MESSAGE _
, vbOkOnly + vbCritical _
, TITLE
END IF
'********処理終了********
Set FSO = Nothing
WSCRIPT.QUIT
このマクロ化は可能だろうか?
Option Explicit
'********フラグ変数定義********
Dim FRAG_0 , FRAG_HANTEI
'********オブジェクト変数定義********
Dim FSO , CSV , LOG , BYTE0 , WSHShell
'********配列宣言************
Dim SERCH_CHR(1) , SERCH_CNT(1)
'********カウント変数宣言************
Dim i , READ_LINE , CNT
'********フォルダ変数宣言************
Dim MAIN_DIR , SERCH_DIR , LOG_DIR , OUT_DIR , BAT_DIR
'********ファイル変数宣言************
Dim SERCH_FILE , SERCH_FILENAME
Dim LOG_FILE , LOG_FILENAME
Dim OUT_FILE , OUT_FILENAME
Dim BAT_FILE , BAT_FILENAME
'********メッセージ変数宣言********
Dim CSV_OK_MESSAGE , RECV_NG_MESSAGE
Dim KENSU_OK_MESSAGE , KENSU_0_MESSAGE , KENSU_0_CHECK_MESSAGE
'********その他変数宣言************
Dim LINE , MESSAGE_LINE
'********初期設定********
MAIN_DIR = "D:\IE\"
SERCH_DIR = MAIN_DIR & "\CNT\temp"
SERCH_FILE = "RESULT.log"
SERCH_FILENAME = SERCH_DIR & "\" & SERCH_FILE
LOG_DIR = MAIN_DIR & "\CNT\LOG"
LOG_FILE = "CNT_CHECK_LOG.txt"
LOG_FILENAME = LOG_DIR & "\" & LOG_FILE
OUT_DIR = MAIN_DIR & "\SE\SD"
OUT_FILE = "P2.txt"
OUT_FILENAME = OUT_DIR & "\" & OUT_FILE
BAT_DIR = MAIN_DIR & "\CNT\BAT"
BAT_FILE = "L1.bat"
BAT_FILENAME = BAT_DIR & "\" & BAT_FILE
i=0
FRAG_0=0
FRAG_HANTEI=0
SERCH_CHR(0)="T"
SERCH_CHR(1)="W"
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set CSV = FSO.OpenTextFile(SERCH_FILENAME)
Set LOG = FSO.OpenTextFile(LOG_FILENAME, 2, True)
Set WSHShell = WScript.CreateObject("WScript.Shell")
CSV_OK_MESSAGE = "ファイルの抽出が正常に完了致しました。"
RECV_NG_MESSAGE = "受信処理に失敗した為、正常に受信出来ませんでした。"
KENSU_OK_MESSAGE = "変換件数の取得が正常に完了致しました。"
KENSU_0_CHECK_MESSAGE = "0件判定結果が正常に完了致しました。"
KENSU_0_MESSAGE = "件数が0件の為、" & OUT_FILE & "を自動作成致しました。" & vbCrLf & _
"データ処理は終了して下さい。"
'********処理開始時間********
CALL LOG_LINE(LINE,"メイン","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'********ファイル抽出処理********
CALL MESSAGE("ファイル抽出処理","開始")
LOG.WriteLine(MESSAGE_LINE)
LOG.WriteBlankLines(1)
Do Until CSV.AtEndOfStream
READ_LINE = CSV.ReadLine
If InStr(READ_LINE, SERCH_CHR(i)) <> 0 then
SERCH_CHR(i) = READ_LINE
i=i+1
END IF
Loop
CSV.Close
LOG.WriteLine(CSV_OK_MESSAGE)
LOG.WriteBlankLines(1)
CALL MESSAGE("ファイル抽出処理","終了")
LOG.WriteLine(MESSAGE_LINE)
LOG.WriteBlankLines(1)
'********変換件数取得処理********
CALL MESSAGE("変換件数取得処理","開始")
LOG.WriteLine(MESSAGE_LINE)
LOG.WriteBlankLines(1)
SERCH_CNT(0) = Mid(SERCH_CHR(0), 10)
SERCH_CNT(1) = Mid(SERCH_CHR(1), 8)
LOG.WriteLine(KENSU_OK_MESSAGE)
LOG.WriteLine("変換前件数 : " & SERCH_CNT(0) & " 件")
LOG.WriteLine("変換後件数 : " & SERCH_CNT(1) & " 件")
LOG.WriteBlankLines(1)
CALL MESSAGE("変換件数取得処理","終了")
LOG.WriteLine(MESSAGE_LINE)
LOG.WriteBlankLines(1)
'********0件判定処理********
CALL MESSAGE("0件判定処理","開始")
LOG.WriteLine(MESSAGE_LINE)
LOG.WriteBlankLines(1)
IF SERCH_CNT(0)=SERCH_CNT(1) then
CNT=SERCH_CNT(0)
IF CNT<>0 then
FRAG_0=1
ELSE
Set BYTE0 = FSO.CreateTextFile(OUT_FILENAME, True)
BYTE0.Close
END IF
ELSE
FRAG_HANTEI=1
END IF
LOG.WriteLine(KENSU_0_CHECK_MESSAGE)
LOG.WriteBlankLines(1)
CALL MESSAGE("0件判定処理","終了")
LOG.WriteLine(MESSAGE_LINE)
LOG.WriteBlankLines(1)
'********判定結果出力処理********
CALL MESSAGE("判定結果出力","開始")
LOG.WriteLine(MESSAGE_LINE)
LOG.WriteBlankLines(1)
IF FRAG_HANTEI=0 then
LOG.WriteLine("データを " & CNT & " 件 正常に受信致しました。")
IF FRAG_0=0 then
LOG.WriteLine(KENSU_0_MESSAGE)
END IF
LOG.WriteBlankLines(1)
ELSE
LOG.WriteLine(RECV_NG_MESSAGE)
LOG.WriteBlankLines(1)
END IF
CALL MESSAGE("判定結果出力","終了")
LOG.WriteLine(MESSAGE_LINE)
LOG.WriteBlankLines(1)
'********処理終了時間********
CALL LOG_LINE(LINE,"メイン","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'********メール配信処理********
WSHShell.Run BAT_FILENAME
Set FSO = Nothing
WSCRIPT.QUIT
'★サブルーチン★-------------------------------------------------------------------------------
Sub MESSAGE(LINE_MSG, ACTION)
MESSAGE_LINE = "★★★************** " & LINE_MSG & ACTION & " **************★★★"
End Sub
SUB LOG_LINE(LINE,SHORIMEI,ACTION)
'********時間変数宣言********
Dim YYYY , MM1 , DD , HH , MM2 , SS , PRIME_DATE , PRIME_TIME
YYYY = Year(DATE)
MM1 = Right("0" & MONTH(DATE), 2)
DD = Right("0" & DAY(DATE), 2)
HH = Right("0" & Hour(TIME), 2)
MM2 = Right("0" & Minute(TIME), 2)
SS = Right("0" & Second(TIME), 2)
PRIME_DATE = YYYY & "/" & MM1 & "/" & DD
PRIME_TIME = HH & ":" & MM2 & ":" & SS
LINE = "★★★************** 処理日 = " & PRIME_DATE & " " & SHORIMEI & "処理" & ACTION & "時間= " & PRIME_TIME & " **************★★★"
END SUB
'********変数強制宣言********
Option Explicit
'********オブジェクト変数定義********
Dim wbemServices , FSO , LOG , WSHShell , PROCESS_OBJ
'********フォルダ変数宣言************
Dim MAIN_DIR , BAT_DIR , LOG_DIR
'********ファイル変数宣言************
Dim BAT_FILE , BAT_FILENAME
Dim LOG_FILE , LOG_FILENAME
'********メッセージ変数宣言********
Dim TITLE , MESSAGE , LOG_MESSAGE
'********その他変数宣言********
Dim strComputer
'********定数設定********
Const PROCESS = "select * from Win32_Process where Name='NOTEPAD.EXE'"
'********初期設定********
strComputer = "."
MAIN_DIR = "D:\PROCESS"
BAT_DIR = MAIN_DIR & "\BAT"
BAT_FILE = "test.bat"
BAT_FILENAME = BAT_DIR & "\" & BAT_FILE
LOG_DIR = MAIN_DIR & "\LOG"
LOG_FILE = "CHECK_LOG.txt"
LOG_FILENAME = LOG_DIR & "\" & LOG_FILE
Set wbemServices = GetObject("winmgmts:\\" & strComputer)
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set LOG = FSO.OpenTextFile(LOG_FILENAME, 8, True)
Set WSHShell = CreateObject("WScript.Shell")
Set PROCESS_OBJ = wbemServices.ExecQuery(PROCESS)
TITLE="メッセージ"
MESSAGE = "未稼働"
LOG_MESSAGE = NOW & " " & MESSAGE
'********処理開始********
IF PROCESS_OBJ.Count = 0 then
LOG.WriteLine(LOG_MESSAGE)
WSHShell.Run BAT_FILENAME
Msgbox MESSAGE _
, vbOkOnly + vbCritical _
, TITLE
END IF
'********処理終了********
Set FSO = Nothing
WSCRIPT.QUIT
このマクロ化は可能だろうか?
投票数:92
平均点:5.00
返信する
この投稿に返信する
投稿ツリー
-
L1+PROCESS CNT マクロ化 (ゲスト, 2010-4-18 18:11)