It's not free, but it's probably the best. "Windows NT Shell Scripting" by Tim Hill.
That said, whenever I try to do something 'advanced' in cmd batch files, I always end up regretting it.
Always.
edit: some explanation of the shortcomings of batch files:
- math capabilities are pathetic
- quoting support is an afterthought - if you need to pass a quoted string as an argument to a command that needs to be quoted itself, reserve a spot at the asylum (actually, I'm not sure it's possible)
- string manipulation is a patchwork of half implemented functionality
Then there are the seemingly never-ending bits of oddities, corner cases, and inconsistencies that you run into at every turn.
The only thing going for batch files is that they're supported on every Windows box out there. If you just want to automate executing a few commands as a group, great. Maybe add a simple loop, a couple of subroutines, and some environment variables to parameterize things. Beyond that I strongly recommend you use something else.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…