Since both sh and cmd have their own quirks, I tend to avoid them. sh is more usable than cmd though. At work I use python instead of either. But personally, I have simple sh/cmd scripts to just build a simple pascal executable which does the rest. With instafpc or so should be a lot easier to make setup/build scripts than with sh/cmd. I've found, especially when one is doing redundant things, that duplicating functionality accross sh or cmd is bothersome.