Creating the links and scripting it is much easier with a Cygwin env because it has all of the utilities built in (find, make, etc). If we had to create our management scripts using ps/bat, I would probably just give up.
To expand on what we do, we actually create a file with a listing of all the link source/target pairs (that gets checked into SVN), then have a Python script to looks for all the links in the project and deletes the incorrect ones and makes the correct ones, then adds them to the SVN ignore list. This is a pain on Windows because it doesn't understand relative links, it is actually an absolute link, so depending on where people check their SVN repo out, their links are different. Also, SVN on windows doesn't understand links (because windows...), hence the bit about adding them to the ignore list and not checking them in.