2011-01-15 23 views
1

特定のWindowsイベントログのイベントログが記録されるたびにトリガーされるコマンドラインスクリプトを作成しようとしています。これまで私が持っていたことは次のとおりです。Windows CLI:別のコマンド内からコマンドを実行します。

wevtutil qe WebsitePanel "/q:*" /f:text /rd:true /c:1 > %tmp%\WebsitePanelErrorLog.log 

set var1 = < %tmp%\ErrorLog.log 

C:\bmail.exe -s aspmx.l.google.com -t [email protected] -f [email protected] -a "wh00: WebsitePanel Event Logged" -b %var1% 

del %tmp%\WebsitePanelErrorLog.log 

何らかの理由でvar1が設定されていないという問題があります。私がこれを行うと空を返すだけです:

echo %var1% 

アイデアはありますか?

+0

私が正しく理解している場合は、ファイルの変更に対応するバッチスクリプトを作成しようとしています。私の知る限り、これはWindowsでは不可能です。 – jcuenod

+0

いいえ、イベントがトリガされるたびにバッチファイルが呼び出されます... "wevtutil"コマンドの出力をbmail.exeのパラメータとして使用したいのですが、 –

答えて

2

setコマンドはstdinからの入力を受け付けません。リダイレクトの代わりに

for /f %x in ('type %tmp%\ErrorLog.log') do set var1=%x 
+1

これは動作しません。これは%var1%を最後の行の最初の単語に割り当てます。 –

+0

私はこのようなことを言った。完全な行を得るために/ fの後に "delims ="を追加したいとします。また、ファイル内のすべての行を収集するために遅延拡張を使用する方法については、「ヘルプセット」を参照してください。最後に、バッチファイル内で%を%%に変換することを忘れないでください。 – John

関連する問題