SRVSTAT2.CMD

:: Script created by Paul Kilian

:: Version number is 2.5

:: Any queries regarding this script should be sent to 
paul@paulslore.com 

:: This script utilises standard Windows 2000/3 command prompt routines to build a 
:: status snapshot of any Windows NT or 2000/3 server or workstation. It's intention
:: is to provide a daily report in an HTML web page that can be used to quickly 
:: identify problems on the servers or workstations. For more detailed information on the script,
:: please visit the examples page at http://www.paulslore.com.

@echo off
setlocal ENABLEDELAYEDEXPANSION

echo Starting status report
:: Get parameters from INI file
echo Getting settings from INI file
for /f "eol=; tokens=1,2 delims==" %%a in (srvstat.ini) do set %%a=%%b
if "!CustomTitle!" == "" (
	if "!AlternateDomain!" == "" (
		set Title=Server Status Report for %USERDOMAIN%
	) else set Title=Server Status Report for !AlternateDomain!
) else (
	for %%m in (!CustomTitle!) do (
		set tmpvar=%%m
		if /i "!tmpvar!" == "%%USERDOMAIN%%" (
			set Title=!Title! %USERDOMAIN%
		) else if /i "!tmpvar!" == "%%USERDNSDOMAIN%%" (
			set Title=!Title! %USERDNSDOMAIN%
		) else set Title=!Title! %%m
	)
)
if not exist "!CSSFile!" echo WARNING^^! - the CSS file does not exist
if "!ReportFile!" == "" set ReportFile=srvstat.html
if "!ReportPath!" == "" set ReportPath=Report\
if not "!ReportPath:~-1!" == "\" set ReportPath=!ReportPath!\
if not exist "!ReportPath!" md "!ReportPath!"||(echo Error creating report directory&goto end)
if not exist Temp\nul md Temp||(echo Error creating temp directory&goto end)
for %%a in (*.gif) do if not exist "!ReportPath!%%a" copy /y %%a "!ReportPath!">nul
copy /y !CSSFile! "!ReportPath!">nul

set tempvar=

del /q Temp\*.*

if "!UseLocal!" == "YES" (
	echo Building server list
	if exist servers.tmp del servers.tmp
	if "!AlternateDomain!" == "" (
		for /f "tokens=1 delims=\ " %%a in ('net view ^|find "\\"') do >>servers.tmp echo %%a
	) else (
		for /f "tokens=1 delims=\ " %%a in ('net view /domain:!AlternateDomain!^|find "\\"') do >>servers.tmp echo %%a
	)
	if not exist servers.tmp (
		echo There was an error enumerating the server names. No servers were found.>"!ReportPath!!ReportFile!"
		goto archive
	) else (
		if not "!UseFilter!" == "" (
			if "!UseFilter:~0,1!" == "-" (
				>servers.txt type servers.tmp|find /i /v "!UseFilter:~1!"
			) else >servers.txt type servers.tmp|find /i "!UseFilter!"
		) else copy /y servers.tmp servers.txt>nul
		del servers.tmp
	)
)
for /f %%a in (servers.txt) do (
	echo Retrieving raw data from %%a
	psinfo -h -d \\%%a >temp\%%a.srv
	for /f %%c in ('dumpel -l system -s \\%%a -d 1 -m EventLog -e 6009^|find /c "0"') do >>temp\%%a.srv echo Reboots 24hr: %%c
	for /f %%c in ('dumpel -l system -s \\%%a -d 7 -m EventLog -e 6009^|find /c "0"') do >>temp\%%a.srv echo Reboots 7day: %%c
	dumpel -l system -s \\%%a -d 1 -t -format dtTISus >temp\%%a24.evt
	dumpel -l system -s \\%%a -d 7 -t -format dtTISus >temp\%%a7.evt
 	for /f "tokens=1,2 delims=:" %%c in ('find /c "	1	" temp\%%a24.evt') do >>temp\%%a.srv echo Errors 24hr: %%d
	for /f "tokens=1,2 delims=:" %%c in ('find /c "	1	" temp\%%a7.evt') do >>temp\%%a.srv echo Errors 7day: %%d
	for /f "tokens=1,2 delims=:" %%c in ('find /c "	2	" temp\%%a24.evt') do >>temp\%%a.srv echo Warnings 24hr: %%d
	for /f "tokens=1,2 delims=:" %%c in ('find /c "	2	" temp\%%a7.evt') do >>temp\%%a.srv echo Warnings 7day: %%d
	for /f "skip=1 tokens=2 delims=[]" %%x in ('ping -n 1 %%a') do echo IP Address:   %%x >>temp\%%a.srv
)

echo Server Name@Owner@Organization@Type@Platform@Version@Service Pack@Build@System Root@Install Date@IP Address@#CPUs@CPU speed@CPU Type@Memory@Uptime@Reboots 24hrs@7days@Errors 24hrs@7days@Warnings 24hrs@7days>Temp\data.csv

for %%a in (temp\*.srv) do (
	set tempvar=
	set server=%%a
	set server=!server:~5,-4!
	echo Collating data for !server!
	if "!ShowOSTable!" == "YES" (
		for %%b in ("Registered owner","Registered organization","Product type","Kernel version","Product version","Service pack","Kernel build number","System root","Install date","IP Address","Processors","Processor speed","Processor type","Physical memory","Uptime") do (
			find /i %%b %%a>nul
			if not errorlevel 1 (
				for /f "tokens=1* delims=:" %%f in (%%a) do if "%%f" == %%b (
					if %%b == "Uptime" (
						for /f "tokens=1,3,5 delims= " %%c in ("%%g") do set tempvar=!tempvar!@%%c Days %%d Hrs %%e Mins
					) else (
						for /f "tokens=* delims= " %%m in ("%%g") do set tmpdata=%%m
						set tempvar=!tempvar!@!tmpdata!
					)
				)
			) else (
				set tempvar=!tempvar!@Unknown
			)
		)
	)
	if "!ShowServerTable!" == "YES" (
		for %%e in ("Reboots 24hr","Reboots 7day","Errors 24hr","Errors 7day","Warnings 24hr","Warnings 7day") do (
			find /i %%e %%a>nul
			if not errorlevel 1 (
				for /f "tokens=1* delims=:" %%b in (%%a) do if "%%b" == %%e (
					for /f "tokens=* delims= " %%m in ("%%c") do set tmpdata=%%m
					set tempvar=!tempvar!@!tmpdata!
				)
			) else (
				set tempvar=!tempvar!@Unknown
			)
		)
	)
	echo !server!!tempvar!>>Temp\data.csv
)

:: Build the HTML page
echo Starting to build the report
(
	echo ^<html^>
	echo ^<head^>
	echo 	^<title^>!Title!^</title^>
	echo 	^<link href="!CSSFile!" rel="stylesheet" type="text/css"^>
	echo ^</head^>
	echo ^<script language="javascript"^>
	echo 	function show^(module^) {
	echo		var thsize = document.body.style.fontSize;
	echo 		document.getElementById^(module^).style.display='block';
	echo 		document.getElementById^(module + "show"^).style.display='none';
	echo 		document.getElementById^(module + "hide"^).style.display='block';
	echo 		if ^(module == "drvinfo"^) document.getElementById^(module + "head"^).style.fontSize=thsize;
	echo 	}
	echo 	function hide^(module^) {
	echo 		document.getElementById^(module^).style.display = 'none';
	echo 		document.getElementById^(module + "hide"^).style.display='none';
	echo 		document.getElementById^(module + "show"^).style.display='block';
	echo 		if ^(module == "drvinfo"^) document.getElementById^(module + "head"^).style.fontSize='10px';
	echo 	}
	echo ^</script^>
	echo ^<body^>
	echo ^<table width="100%%"^>
	echo 	^<tr^>
	echo 		^<th align="left"^>^ !Title!^</th^>
	echo 		^<td align="right" valign="bottom"^>Report generated at %time:~0,-6% on %date%^</td^>
	echo 	^</tr^>
	echo ^</table^>
)>"!ReportPath!!ReportFile!"

:: OS Info

if not "!ShowOSTable!" == "YES" goto servertable
echo Building report of OS information
(
	echo ^<table^>
	echo 	^<tr^>
	echo 		^<th^>
	echo 			^<table width="100%"^>
	echo 				^<tr^>
	echo 					^<th^>
	if /i !CollapseOSInfo! == YES (
		echo 						^<img id="osinfoshow" src="down.gif" border="0" onClick="show('osinfo');"^>
		echo 						^<img id="osinfohide" src="up.gif" border="0" onClick="hide('osinfo');" style="display: none;"^>
	) else (
		echo 						^<img id="osinfoshow" src="down.gif" border="0" onClick="show('osinfo');" style="display: none;"^>
		echo 						^<img id="osinfohide" src="up.gif" border="0" onClick="hide('osinfo');"^>
	)
	echo 					^</th^>
	echo 					^<th width="100%%"^>Operating System Information^</th^>
	echo 				^</tr^>
	echo 			^</table^>
	echo 		^</th^>
	echo 	^</tr^>
	echo ^</table^>
	if /i !CollapseOSInfo! == YES (
		echo ^<div id="osinfo" style="display: none;"^>
	) else echo ^<div id="osinfo"^>
	echo ^<table^>
)>>"!ReportPath!!ReportFile!"

set count=0

for /f "tokens=1-22 delims=@" %%a in (Temp\data.csv) do (
	set /a count=!count! + 1
	(
		if !count! == 1 (
			echo 	^<tr^>
		) else (
			echo 	^<tr^>
		)
		echo 		^<td^>%%a^</td^>
		echo 		^<td^>%%c^</td^>
		echo 		^<td^>%%e^</td^>
		echo 		^<td^>%%d^</td^>
		echo 		^<td align=center^>%%f^</td^>
		echo 		^<td align=center^>%%g^</td^>
		echo 		^<td align=center^>%%h^</td^>
		echo 		^<td^>%%j^</td^>
		echo 	^</tr^>
	)>>"!ReportPath!!ReportFile!"
)
(
	echo ^</table^>
	echo ^</div^>
)>>"!ReportPath!!ReportFile!"
:: Server Info
:servertable
if not "!ShowServerTable!" == "YES" goto drivetable
echo Building report of server information
(
	echo ^<table^>
	echo 	^<tr^>
	echo 		^<th^>
	echo 			^<table^>
	echo 				^<tr^>
	echo 					^<th rowspan="2" width="15"^>
	if /i !CollapseServerInfo! == YES (
		echo 						^<img id="srvinfoshow" src="down.gif" border="0" onClick="show('srvinfo');"^>
		echo 						^<img id="srvinfohide" src="up.gif" border="0" onClick="hide('srvinfo');" style="display: none;"^>
	) else (
		echo 						^<img id="srvinfoshow" src="down.gif" border="0" onClick="show('srvinfo');" style="display: none;"^>
		echo 						^<img id="srvinfohide" src="up.gif" border="0" onClick="hide('srvinfo');"^>
	)
	echo 					^</th^>
	echo 					^<th rowspan="2"^>Server Information^</th^>
	echo 					^<th colspan="3" style="line-height: 1px;"^>^ ^</th^>
	echo 				^</tr^>
	echo 				^<tr^>
	echo 					^<td^>Reboots^</td^>
	echo 					^<td^>Errors^</td^>
	echo 					^<td^>Warnings^</td^>
	echo 				^</tr^>
	echo 			^</table^>
	echo 		^</th^>
	echo 	^</tr^>
	echo ^</table^>
	if /i !CollapseServerInfo! == YES (
		echo ^<div id="srvinfo" style="display: none;"^>
	) else echo ^<div id="srvinfo"^>
	echo ^<table^>	
)>>"!ReportPath!!ReportFile!"
set count=0
for /f "tokens=1-22 delims=@" %%a in (Temp\data.csv) do (
	set /a count=!count! + 1
	(
		if !count! == 1 (
			echo 	^<tr^>
		) else (
			echo 	^<tr^>
		)
		echo 		^<td^>%%a^</td^>
		echo 		^<td^>%%k^</td^>
		echo 		^<td align=center^>%%l^</td^>
		echo 		^<td align=center^>%%m^</td^>
		echo 		^<td^>%%n^</td^>
		echo 		^<td^>%%o^</td^>
		echo 		^<td^>%%p^</td^>
		if "%%q" == "Reboots 24hrs" (
			echo 		^<td width="40" align="center"^>24hrs^</td^>
		) else if %%q GTR !NumReboots1DayAlert! (
			echo 		^<td align="center"^>%%q^</td^>
		) else if %%q GTR !NumReboots1DayWarn! (
			echo 		^<td align="center"^>%%q^</td^>
		) else (
			echo 		^<td align="center"^>%%q^</td^>
		)	
		if "%%r" == "7days" (
			echo 		^<td width="40" align="center"^>%%r^</td^>
		) else if %%r GTR !NumReboots1WeekAlert! (
			echo 		^<td align="center"^>%%r^</td^>
		) else if %%r GTR !NumReboots1WeekWarn! (
			echo 		^<td align="center"^>%%r^</td^>
		) else (
			echo 		^<td align="center"^>%%r^</td^>
		)	
		if "%%s" == "Errors 24hrs" (
			echo 		^<td width="40" align="center"^>24hrs^</td^>
		) else if %%s GTR !NumError1DayAlert! (
			echo 		^<td align="center"^>%%s^</td^>
		) else if %%s GTR !NumError1DayWarn! (
			echo 		^<td align="center"^>%%s^</td^>
		) else (
			echo 		^<td align="center"^>%%s^</td^>
		)	
		if "%%t" == "7days" (
			echo 		^<td width="40" align="center"^>%%t^</td^>
		) else if %%t GTR !NumError1WeekAlert! (
			echo 		^<td align="center"^>%%t^</td^>
		) else if %%t GTR !NumError1WeekWarn! (
			echo 		^<td align="center"^>%%t^</td^>
		) else (
			echo 		^<td align="center"^>%%t^</td^>
		)	
		if "%%u" == "Warnings 24hrs" (
			echo 		^<td width="40" align="center"^>24hrs^</td^>
		) else if %%u GTR !NumWarnings1DayAlert! (
			echo 		^<td align="center"^>%%u^</td^>
		) else if %%u GTR !NumWarnings1DayWarn! (
			echo 		^<td align="center"^>%%u^</td^>
		) else (
			echo 		^<td align="center"^>%%u^</td^>
		)	
		if "%%v" == "7days" (
			echo 		^<td width="41" align="center"^>%%v^</td^>
		) else if %%v GTR !NumWarnings1WeekAlert! (
			echo 		^<td align="center"^>%%v^</td^>
		) else if %%v GTR !NumWarnings1WeekWarn! (
			echo 		^<td align="center"^>%%v^</td^>
		) else (
			echo 		^<td align="center"^>%%v^</td^>
		)
		echo 	^</tr^>
	)>>"!ReportPath!!ReportFile!"
)
(
	echo ^</table^>
	echo ^</div^>
)>>"!ReportPath!!ReportFile!"

:drivetable
echo Building report of drive information
(
	echo ^<table width="100%%" border="0" cellpadding="0" cellspacing="0"^>
	echo 	^<tr valign="top"^>
)>>"!ReportPath!!ReportFile!"

:: Drive Status
if not "!ShowDriveTable!" == "YES" goto hotfixtable
(
	echo 		^<td^>
	echo 			^<table^>
	echo 				^<tr^>
	echo 					^<th^>
	echo 						^<table^>
	echo 							^<tr^>
	echo 								^<th^>
	if /i !CollapseDriveInfo! == YES (
		echo 									^<img id="drvinfoshow" src="down.gif" border="0" onClick="show('drvinfo');"^>
		echo 									^<img id="drvinfohide" src="up.gif" border="0" onClick="hide('drvinfo');" style="display: none;"^>
	) else (
		echo 									^<img id="drvinfoshow" src="down.gif" border="0" onClick="show('drvinfo');" style="display: none;"^>
		echo 									^<img id="drvinfohide" src="up.gif" border="0" onClick="hide('drvinfo');"^>
	)
	echo 								^</th^>
	if /i !CollapseDriveInfo! == YES (
		echo 								^<th id="drvinfohead" width="100%%" style="font-size: 10px;"^>Drive Status^</th^>
	) else echo 								^<th id="drvinfohead" width="100%%"^>Drive Status^</th^>
	echo 							^</tr^>
	echo 						^</table^>
	echo 					^</th^>
	echo 				^</tr^>
	echo 			^</table^>
	if /i !CollapseDriveInfo! == YES (
		echo 			^<div id="drvinfo" style="display: none;"^>
	) else echo 			^<div id="drvinfo"^>
	echo 			^<table^>
	echo 				^<tr^>
	echo 					^<td^>Drive^</td^>
	echo 					^<td^>FS Type^</td^>
	echo 					^<td^>MB Total^</td^>
	echo 					^<td^>MB Free^</td^>
	echo 					^<td^>%% Free^</td^>
	echo 				^</tr^>
)>>"!ReportPath!!ReportFile!"

for /f "tokens=1 delims= " %%a in (servers.txt) do (
	(
		echo 				^<tr^>
		echo 					^<td colspan="5" align="center"^>%%a^</td^>
		echo 				^</tr^>
	)>>"!ReportPath!!ReportFile!"
	for /f "usebackq tokens=1-9 delims= " %%b in (`findstr /i /c:": Fixed" temp\%%a.srv`) do (
		(
			echo 				^<tr^>
			if "%%j" == "" (
				set drsize=%%e %%f
				set drfree=%%g %%h
				set drpcfree=%%i
			) else (
				set drsize=%%f %%g
				set drfree=%%h %%i
				set drpcfree=%%j
			)
			echo 					^<td^>%%b^</td^>
			echo 					^<td^>%%d^</td^>
			echo 					^<td^>!drsize!^</td^>
			echo 					^<td^>!drfree!^</td^>
			set calc=!drfree:~0,-5!
			set calc=!drpcfree:~0,-1!
			if !calc! LSS %DriveSpacePercentAlert% (
				echo 					^<td align="center"^>!drpcfree!^</td^>
			) else if !calc! LSS %DriveSpacePercentWarn% (
				echo 					^<td align="center"^>!drpcfree!^</td^>
			) else (
				echo 					^<td align="center"^>!drpcfree!^</td^>
			)
			echo 				^</tr^>	
		)>>"!ReportPath!!ReportFile!"
	)
)
(
	echo 			^</table^>
	echo 			^</div^>
	echo 		^</td^>
)>>"!ReportPath!!ReportFile!"

:: Hotfixes
:hotfixtable
if "!ShowDriveTable!" == "YES" if "!ShowHotfixTable!" == "YES" echo 		^<td width="4"^>^ ^</td^>>>"!ReportPath!!ReportFile!"
if not "!ShowHotfixTable!" == "YES" goto errortable
(
	echo 		^<td^>
	echo 			^<table^>
	echo 				^<tr^>
	echo 					^<th^>
	echo 						^<table^>
	echo 							^<tr^>
	echo 								^<th^>
	if /i !CollapseHotfixInfo! == YES (
		echo 									^<img id="hfinfoshow" src="down.gif" border="0" onClick="show('hfinfo');"^>
		echo 									^<img id="hfinfohide" src="up.gif" border="0" onClick="hide('hfinfo');" style="display: none;"^>
	) else (
		echo 									^<img id="hfinfoshow" src="down.gif" border="0" onClick="show('hfinfo');" style="display: none;"^>
		echo 									^<img id="hfinfohide" src="up.gif" border="0" onClick="hide('hfinfo');"^>
	)
	echo 								^</th^>
	echo 								^<th width="100%%"^>Installed Hotfixes^</th^>
	echo 							^</tr^>
	echo 						^</table^>
	echo 					^</th^>
	echo 				^</tr^>
	echo 			^</table^>
	if /i !CollapseHotfixInfo! == YES (
		echo 			^<div id="hfinfo" style="display: none;"^>
	) else echo 			^<div id="hfinfo"^>
	echo 			^<table^>
	echo 				^<tr^>
	echo 					^<td^>^ ^</td^>
)>>"!ReportPath!!ReportFile!"
echo Building list of all hotfixes
echo ;All hotfixes found in the environment>Temp\hotfixes.txt
for %%a in (!CriticalHotfixes!) do echo %%a>>Temp\hotfixes.txt
for /f %%a in (servers.txt) do (
	for /f "usebackq skip=1 tokens=1* delims= " %%b in (`findstr /c:"/" temp\%%a.srv`) do (
		findstr /i "%%b" Temp\hotfixes.txt>nul||echo %%b>>Temp\hotfixes.txt
	)
	echo 					^<td align="center"^>%%a^</td^>>>"!ReportPath!!ReportFile!"
)
echo 				^</tr^>>>"!ReportPath!!ReportFile!"
echo Building report of installed hotfixes
for /f %%a in (Temp\hotfixes.txt) do (
	set CritHF=
	for %%b in (!CriticalHotfixes!) do if /i "%%b" == "%%a" set CritHF=YES
	(
		echo 				^<tr^>
		if !CritHF! == YES (
			echo 					^<td align=center style="background: orange;"^>%%a^</td^>
		) else echo 					^<td align=center^>%%a^</td^>
	)>>"!ReportPath!!ReportFile!"	

	for /f %%b in (servers.txt) do (
		findstr "%%a" temp\%%b.srv>nul||(
			if !CritHF! == YES (
				echo 					^<td align="center"^>-^</td^>>>"!ReportPath!!ReportFile!"
			) else echo 					^<td align="center"^>-^</td^>>>"!ReportPath!!ReportFile!"
		)
		for /f "tokens=1,2 delims= " %%c in ('type temp\%%b.srv^|find "%%a"') do echo 					^<td align="center"^>%%d^</td^>>>"!ReportPath!!ReportFile!"
	)
	echo 				^</tr^>>>"!ReportPath!!ReportFile!"
)
	(
		echo 			^</table^>
		echo 			^</div^>
		echo 		^</td^>
	)>>"!ReportPath!!ReportFile!"

:: Errors and Warnings
:errortable
if /i !ShowDriveTable! == YES if /i not !ShowHotfixTable! == YES (
	echo 		^<td^>>>"!ReportPath!!ReportFile!"
) else (
	(
		echo 	^</tr^>
		echo ^</table^>
	)>>"!ReportPath!!ReportFile!"
)
if not "%ShowErrorTable%" == "YES" goto endtable
(
	echo 			^<table^>
	echo 				^<tr^>
	echo 					^<th^>
	echo 						^<table^>
	echo 							^<tr^>
	echo 								^<th^>
	if /i !CollapseErrorInfo! == YES (
		echo 									^<img id="erinfoshow" src="down.gif" border="0" onClick="show('erinfo');"^>
		echo 									^<img id="erinfohide" src="up.gif" border="0" onClick="hide('erinfo');" style="display: none;"^>
	) else (
		echo 									^<img id="erinfoshow" src="down.gif" border="0" onClick="show('erinfo');" style="display: none;"^>
		echo 									^<img id="erinfohide" src="up.gif" border="0" onClick="hide('erinfo');"^>
	)
	echo 								^</th^>
	echo 								^<th width="100%%"^>Errors and Warnings ^( Last 24 Hours^)^</th^>
	echo 							^</tr^>
	echo 						^</table^>
	echo 					^</th^>
	echo 				^</tr^>
	echo 			^</table^>
	if /i !CollapseErrorInfo! == YES (
		echo 			^<div id="erinfo" style="display: none;"^>
	) else echo 			^<div id="erinfo"^>
	echo 			^<table^>
	echo 				^<tr^>
	echo 					^<td^>Date^</td^>
	echo 					^<td^>Time^</td^>
	echo 					^<td^>ID^</td^>
	echo 					^<td^>Source^</td^>
	echo 					^<td^>User^</td^>
	echo 					^<td^>Detail^</td^>
	echo 				^</tr^>
)>>"!ReportPath!!ReportFile!"

for /f %%a in (servers.txt) do (
echo Building report of errors and warnings on %%a
	(
		echo					^<tr^>
		echo						^<td colspan="6" align="center"^>%%a^</td^>
		echo					^</tr^>
	)>>"!ReportPath!!ReportFile!"
	for /f "tokens=1-7 delims=	" %%b in (temp\%%a24.evt) do (
		set ignrevent=
		for %%m in (!IgnoreEvents!) do if "%%e" == "%%m" set ignrevent=yes
		if /i not "!ignrevent!" == "yes" (
			if "%%d" == "2" (
				(
					echo					^<tr^>
					echo						^<td^>%%b^</td^>
					echo						^<td^>%%c^</td^>
					if /i "!InclEvIDLink!" == "YES" (
						echo						^<td align="center"^>%%e^ ^<a href="http://www.eventid.net/display.asp?eventid=%%e" target="_blank"^>^<img src="idinfo.gif" border="0" alt="Click for more information"^>^</a^>^</td^>
					) else echo						^<td align="center"^>%%e^</td^>
					echo						^<td^>%%f^</td^>
					echo						^<td^>%%g^</td^>
					echo						^<td^>%%h^</td^>
					echo					^</tr^>
				)>>"!ReportPath!!ReportFile!"
			)
		)
	)
	for /f "tokens=1-7 delims=	" %%b in (temp\%%a24.evt) do (	
		set ignrevent=
		for %%m in (!IgnoreEvents!) do if "%%e" == "%%m" set ignrevent=yes
		if /i not "!ignrevent!" == "yes" (
			if "%%d" == "1" (
				(
					echo					^<tr^>
					echo						^<td^>%%b^</td^>
					echo						^<td^>%%c^</td^>
					if /i "!InclEvIDLink!" == "YES" (
						echo						^<td align="center"^>%%e^ ^<a href="http://www.eventid.net/display.asp?eventid=%%e" target="_blank"^>^<img src="idinfo.gif" border="0" alt="Click for more information"^>^</a^>^</td^>
					) else echo						^<td align="center"^>%%e^</td^>
					echo						^<td^>%%f^</td^>
					echo						^<td^>%%g^</td^>
					echo						^<td^>%%h^</td^>
					echo					^</tr^>
				)>>"!ReportPath!!ReportFile!"
			)		
		)
	)
)
echo 			^</table^>>>"!ReportPath!!ReportFile!"
if /i !ShowDriveTable! == YES if /i not !ShowHotfixTable! == YES (
	(
		echo 		^</td^>
		echo 	^</tr^>
		echo ^</table^>
	)>>"!ReportPath!!ReportFile!"
)
:endtable
(
	echo ^</div^>
	echo ^<br^>
	echo ^<font size="2"^>Archive reports can be found on the ^<a href="archive/archive.html"^>ARCHIVE^</a^> page.
	echo ^<br^>
	echo The raw data used to generate this page can be downloaded ^<a href="data.txt"^>HERE^</a^>. ^(Tab seperated values, right click the link-choose save as^)^</font^>
	echo ^</body^>
	echo ^</html^>
)>>"!ReportPath!!ReportFile!"

for /f "tokens=1-25 delims=@" %%a in (Temp\data.csv) do echo %%a	%%b	%%c	%%d	%%e	%%f	%%g	%%h	%%i	%%j	%%k	%%l	%%m	%%n	%%o	%%p	%%q	%%r	%%s	%%t	%%u	%%v	%%w	%%x	%%y>>Temp\data.txt
copy /y Temp\data.txt "!ReportPath!">nul
if exist Temp\data.txt del Temp\data.txt
echo Report finished

:archive
echo Building archive page
if not exist "!ReportPath!archive\" md "!ReportPath!archive"
for /f "tokens=2,3,4 delims=/ " %%a in ("%date%") do set today=%%c%%b%%a
for /f "tokens=3,4 delims=/ " %%a in ("%date%") do set month=%%b-%%a
if not exist "!ReportPath!archive\!month!\" md "!ReportPath!archive\!month!"
for %%a in (*.gif) do if not exist "!ReportPath!archive\!month!\%%a" copy /y %%a "!ReportPath!archive\!month!\">nul
copy /y !CSSFile! "!ReportPath!archive\">nul
copy /y !CSSFile! "!ReportPath!archive\!month!\">nul
copy /y "!ReportPath!!ReportFile!" "!ReportPath!archive\!month!\stat-!today!.html">nul

:: Build Archive Page
(
	echo ^<html^>
	echo ^<head^>
	echo 	^<title^>Server Stats Archive Files^</title^>
	echo 	^<link href="!CSSFile!" rel="stylesheet" type="text/css"^>
	echo ^</head^>
	echo ^<body^>
	echo ^<center^>^<h2^>Server Status Archive Files^</h2^>^<br^>
	echo ^<table^>
)>"!ReportPath!archive\archive.html"
for /f %%a in ('dir /b /ad /o-n "!ReportPath!archive"') do (
	(
		echo 	^<tr^>
		echo 		^<th^>%%a^</th^>
	)>>"!ReportPath!archive\archive.html"
	for /f %%b in ('dir /b "!ReportPath!archive\%%a\*.html"') do (
		set file=%%b
		echo 		^<td^>^<a href="%%a/%%b"^>!file:~11,-5!^</a^>^</td^>>>"!ReportPath!archive\archive.html"
	)
	echo 	^<tr^>>>"!ReportPath!archive\archive.html"

)
(
	echo ^</table^>
	echo ^</center^>
	echo ^</body^>
	echo ^</html^>
)>>"!ReportPath!archive\archive.html"
echo Archive page finished

:: Copy pages to web folder
:webcopy
if not "%CopyToWeb%" == "YES" goto smtpsend
echo Copying report to web
if "!MapWebFolder!" == "YES" net use !MapDrive! /d && net use !MapDrive! !MapShare!
if not exist "!wwwdir!nul" md "!wwwdir!"
if not exist "!wwwdir!nul" goto smtpsend
copy /y "!ReportPath!!ReportFile!" "!wwwdir!">nul
copy /y "!ReportPath!archive\archive.html" "!wwwdir!">nul
if not exist "!wwwdir!archive\nul" md "!wwwdir!archive"
if not exist "!wwwdir!archive\!month!\nul" md "!wwwdir!archive\!month!"
if not exist "!wwwdir!archive\!month!\idinfo.gif" copy /y idinfo.gif "!wwwdir!archive\!month!">nul
if not exist "!wwwdir!archive\!month!\stat-!today!.html" copy /y "!ReportPath!!ReportFile!" "!wwwdir!archive\!month!\stat-!today!.html">nul
copy /y Temp\data.txt "!wwwdir!">nul
copy /y *.gif "!wwwdir!">nul
echo Copy finished

:smtpsend
if not "%SendSMTP%" == "YES" goto end
echo Emailing report
smtpsend -f!SMTPfrom! -t!SMTPto! -h!SMTPhost! -s!SMTPsubject! -a"!ReportPath!archive\!month!\stat-!today!.html"

:end
del /q Temp\*.*
echo Status report complete
endlocal