I don't really have a specific question here. Are there any general guidelines on things like error checking and working with strings, long path names and folders with spaces between them, etc, when working with BAT files? Are there any hidden, or undocumented features in the CMD.exe shell?

I know that Unix is more powerful in this regard. Would that CygWin give me some more capabilities?