複数の自作バッチプロラムの共有ログを採取する方法
複数の自作バッチプロラムの共有ログを採取する方法
os:windows xp
バッチプログラムの開始前後にログ出力をします。
普通にバッティングせずに動くと、後述のサンプル・ログ(1)のように綺麗にとれます。
しかし、
バッティングした際に正しく取れません。
dos batファイルでやったところ、掴んでいるときに後から行った方の出力がされません。
→ サンプル・ログ(1)
それならと、
vbsで同じ事を作ってみました。
すると、掴んでいるときに後から行った方がエラーでコケました。
ファイルの定義やオープンの時に「掴んでいたら無制限に待つ」とか「タイムアウトまで待つ」とか、そういう事はできるでしょうか?
複数のアプリから同じファイルにIOするには仕組みとして何かが足りないのでしょうか?
以上、よろしくお願いします。
■サンプル・ログ
(1)
===== FILE_TIME.log =====
2010/03/05- 9:00:00.00,処理1,開始
2010/03/05- 9:00:00.00,処理2,開始
2010/03/05- 9:30:00.00,処理1,終了
2010/03/05- 9:40:00.00,処理2,終了
===== FILE_TIME.log =====
(2)
===== FILE_TIME.log =====
2010/03/05- 9:00:00.00,処理1,開始
2010/03/05- 9:30:00.00,処理1,終了
2010/03/05- 9:40:00.00,処理2,終了
===== FILE_TIME.log =====
■サンプル・バッチファイル
===== Shori1.bat =====
@echo off
echo %date%-%time%,処理1,開始 >> FILE_TIME.log
rem 処理1呼び出し
echo %date%-%time%,処理1,終了 >> FILE_TIME.log
===== Shori1.bat =====
===== Shori2.bat =====
@echo off
echo %date%-%time%,処理2,開始 >> FILE_TIME.log
rem 処理2呼び出し
echo %date%-%time%,処理2,終了 >> FILE_TIME.log
===== Shori2.bat =====
■サンプル・vbs
===== Shori1.vbs =====
Set ObjSFS = WScript.CreateObject("Scripting.FileSystemObject")
Set ObjLogFile = ObjSFS.OpenTextFile("FILE_TIME.log", 8, True)
ObjLogFile.WriteLine Now() & ",処理1,開始"
ObjLogFile.Close
rem 処理1呼び出し
Set ObjLogFile = ObjSFS.OpenTextFile("FILE_TIME.log", 8, True)
ObjLogFile.WriteLine Now() & ",処理1,終了"
ObjLogFile.Close
===== Shori1.vbs =====
===== Shori2.vbs =====
Set ObjSFS = WScript.CreateObject("Scripting.FileSystemObject")
Set ObjLogFile = ObjSFS.OpenTextFile("FILE_TIME.log", 8, True)
ObjLogFile.WriteLine Now() & ",処理2,開始"
ObjLogFile.Close
rem 処理2呼び出し
Set ObjLogFile = ObjSFS.OpenTextFile("FILE_TIME.log", 8, True)
ObjLogFile.WriteLine Now() & ",処理2,終了"
ObjLogFile.Close
===== Shori2.vbs =====
お礼
temtecomai2 さん、ご回答頂きまして有難うございました。 お礼の返事が送れましたことお詫びいたします。
補足
temtecomai2さん、詳細なコードの提示有難うございます。 "VBScript から Excel ファイルを開くところまではできているとします" すみません、ここの部分はまだ出来ておりません。各個人のログをテキストファイルに書き出すところまでしかできておりません。 "targetSheet変数"というものを使用してExcelファイルを開くという処理を教えて頂けないでしょうか。 私の質問がいたらなかったばかりにご迷惑をお掛けしますが、宜しくお願いします。