Hell, I'll even walk you through what it does. First it turns the echo function off unless it's forced to use it, mainly because I don't feel like inducing seizures. Next it prints some lines telling you what the program does. Then we move into the main loop. We begin by pinging, or sending a small TCP/IP packet to the address 1.1.1.1, which is an invalid IP address. After 1800 seconds, or thirty minutes, the program 'ping' (which is already preinstalled on all windows machines) gives up waiting to receive a return packet because 1.1.1.1 in an invalid IP address. Now we can move into the beef of the operation: where I destroy your computer. pinging bay12games.com. We ping bay12games with as small of a packet as is possible, to reduce any possible strain on the server. If this ping times out, or fails to receive a return packet within an allotted time, ping will set the variable %errorlevel% to 1, otherwise %errorlevel% will be zero. The next bit, an if statement, checks what %errorlevel% is, and if it's 1, it reports the time, storing it into outages.txt, and displaying it on screen, probably accompanied by a whine about how outages.txt doesn't exist, even though it does. Then we return to the beginning of the loop and wait for the process to repeat.
With checking only every half hour, there is a relatively good chance that someone will miss a downtime event, but, hopefully, I can get enough people to run this we won't miss them.
tl;dr: It's not a virus.