Sure read as much code as you can find, tinker with it, learn to identify the good from the bad and learn to write good code. Learning how to do anything (even math) well gives you a good building block to write more advanced code.

As to getting to grips with Windows, yes batch programming can still be of use, I`m also rather partial to assembler. (which always has a place).. get to grips with the regsitry, lots of stuff goes on in there, understand how Windows authentication works. See how apps works, when you open up a program what happens? Ideally you could use IDAPro/rational purify etc... to run apps through, but you don`t have that so go look for something else, there is much out there.

Read a good book on networking. Then run a packet sniffer (TCPDump, ethereal, etc..) and see what you can see, in fact boot up windows and then run a sniffer and see all the crap that comes off a box, what does it all do?

Set up a test environment, mess around with it, break it, rebuild, repeat..

Learn Ruby as it rocks