イベントログにアベンドしたJOBが出力されない場合
せめて、logファイルにだけでも内容を書きたいのですが
うまくいきません。
リターンコードが全部(1)の元バッチファイルで0がかえってきます。
どなたがご教授願います。
(1)親バッチファイルの中味
@echo off
rem==============================================
rem
rem ARG1 = スケジュール日
rem ARG2 = ネットワーク名
rem ARG3 = 終了コード
rem
rem ================================================
set SDATE=%1
set NETWORK=%2
set RC=%3
set SDATE_SHORT=%SDATE:~2,6%
set WK_DIR=D:\temp
set TOML_TXT=%WK_DIR%\toml_%NETWORK%.txt
set VBSCRIPT=D:\stage\tools\bat\GetJobName.vbs
echo ### ARG1(%1) ARG2(%2) ARG3(%3) ###
if "%RC%"=="00" (
echo NETWORK NORMAL END #AUTONEND#
) else (
echo NETWORK ABNORMAL END #AUTONEND#
if exist %TOML_TXT% (
del %TOML_TXT%
)
toml -p999 > %TOML_TXT%
cscript //Nologo %VBSCRIPT% %SDATE_SHORT% %NETWORK% %RC% %TOML_TXT%
)
if not "%errlrlevel%"=="0" (
set EVT_CRT_RC=%errorlevel%
echo EVETCREATE Failed. RC=%EVT_CRT_RC%
)
)
exit
(2)VBスクリプトの中味
800文字以上になるので、補足要求してください。
(3)イベントログ出力バッチファイルの中味
@echo off
rem
rem 引数
rem %1:SDATE
rem %2:NETWORK
rem %3:RC
rem %4:JOB
set MSG=A-AUTO JOBNET : NETWORK(%2) JOB(%4) SDATE=%1 ABNORMALLY ENDED RC=%3
eventcreate /l application /t error /so autonend /id 999 /d "%MSG%"
exit %errorlevel%
お礼
調査結果が一致したので、驚いております。 setlocal enabledelayedexpansionし、cmd /v:on 遅延環境変数を有効にするか、goto文で迷っていますが、どちらにしても解決する構文であることは間違いないことが確認できております。 ご協力本当にありがとうございました。