アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になっております。
題名の件ですが、

▼Accessマクロ
Function EventQuery()

Dim objWSH As Object
Set objWSH = CreateObject("WScript.Shell")
objWSH.Run """C:\Documents and Settings\userName\デスクトップ\EventLogAccess\event.bat"""
Set objWSH = Nothing

End Function

上記マクロで、event.batというバッチ処理を実行しております。

▼event.bat
set fname=%DATE:/=%
eventquery /s server /u userName /p passWord /l application /fi "Id eq 8" /fi "Datetime gt 12/04/2009,01:00:00AM" /r 500 /v >%fname%.txt

上記バッチ処理で、2009年12月4日のイベントログ(アプリケーション)の一覧を取得しております。

【質問内容】
eventquery.vbsのオプションでは日付指定しかできないみたいですが、
実行した当日のログ(アプリケーション)を取得したいと考えております。

方法はないでしょうか?
ご教示の程宜しくお願い致します。

A 回答 (2件)

>>event.bat の 12/04/2009 の部分をパラメータ %1 に変更して


>▼event.bat
>set fname=%DATE:/=%
>eventquery /s server /u userName /p passWord /l application /fi "Id eq 8" /fi "Datetime gt %1,01:00:00AM" /r 500 /v >%fname%.txt
>
>上記のように変更すると、エラーとなりログの取得ができないです。

この文章からですと、

「Access で 実行する .Run の内容を "~\event.bat" & Format(Date,"mm/dd/yyyy") 」

の部分がされていないのではないか、と思えてしまうのですが・・・。

「Access で 実行する .Run の内容を "~\event.bat" & Format(Date,"mm/dd/yyyy") 」

の内容を理解されているのかいないのかよくわからないのですが、とりあえず、もう一つ、「Access で 実行する .Run の内容を "~\event.bat" & Format(Date,"mm/dd/yyyy") 」にせずにできる方法を考えてみました。
コントロールパネルの「地域と言語のオプション」の日付の設定が
YYYY/MM/DD になっている場合ですと、

set fname=%DATE:/=%
FOR /F "tokens=1-3 delims=/ " %%A in ('DATE /T') do SET YYYY=%%A&SET MM=%%B&SET DD=%%C
eventquery /s server /u userName /p passWord /l application /fi "Id eq 8" /fi "Datetime gt %MM%/%DD%/%YYYY%,01:00:00AM" /r 500 /v >%fname%.txt

のようにすると、%MM%/%DD%/%YYYY% が実行した日付に置き換わります。


>%1の意味を教えていただけないでしょうか。

%1 は1番目のパラメータです。
同様に %2 ~ %9 が使用できます。
例えば、
COPY AAA.TXT %1
という内容の BBB.BAT があったとすると
BBB.BAT CCC.TXT
を実行すると BBB.BAT の中で %1 が CCC.TXT に置き換わり、
COPY AAA.TXT CCC.TXT
が実行されます。
    • good
    • 0
この回答へのお礼

>「Access で 実行する .Run の内容を "~\event.bat" & Format(Date,"mm/dd/yyyy") 」
>の部分がされていないのではないか、と思えてしまうのですが・・・。
仰るとおりでした。すいません。

set fname=%DATE:/=%
FOR /F "tokens=1-3 delims=/ " %%A in ('DATE /T') do SET YYYY=%%A&SET MM=%%B&SET DD=%%C
eventquery /s server /u userName /p passWord /l application /fi "Id eq 8" /fi "Datetime gt %MM%/%DD%/%YYYY%,01:00:00AM" /r 500 /v >%fname%.txt

のようにすると、%MM%/%DD%/%YYYY% が実行した日付に置き換わります。

上記のようにすると置き換わりました!!
ただ内容は全く理解できませんでした。
理解できるように勉強致します。
ありがとう御座いました。

お礼日時:2009/12/09 10:25

event.bat の 12/04/2009 の部分をパラメータ %1 に変更して、Access で 実行する .Run の内容を


"~\event.bat" & Format(Date,"mm/dd/yyyy")
みたいな形にするのが手っ取り早いのではないかと思います。
(eventquery.vbsを元に当日分のみを出力するvbsを作ってもいいかもしれないですね)

この回答への補足

tsukasa-12r様
ご回答ありがうございます。

>event.bat の 12/04/2009 の部分をパラメータ %1 に変更して
▼event.bat
set fname=%DATE:/=%
eventquery /s server /u userName /p passWord /l application /fi "Id eq 8" /fi "Datetime gt %1,01:00:00AM" /r 500 /v >%fname%.txt

上記のように変更すると、エラーとなりログの取得ができないです。
【エラー内容】
エラー: 指定した 'DATETIME' 形式は無効です。形式: 月/日/年、時:分:秒AM(/PM) (2 桁の数字で指定、年は 4 桁指定可能)

%1の意味を教えていただけないでしょうか。
宜しくお願い致します。

補足日時:2009/12/07 11:22
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています