As for the "lack of a usable shell" part, have you looked at Powershell? It comes bundled with Windows, and has a lot of the features that are missing from the command prompt.
It does have some rough edges that may cause you to dismiss it as unusable, but it offers tab completion, colored text output, and a real scripting environment (not DOS batch scripting). Every serious Windows developer I've talked to nowadays uses it exclusively.
> As for the "lack of a usable shell" part, have you looked at Powershell?
No, and I have zero reason to do so. I don't deploy on windows, I have no reason to ever deploy on windows, so why would I bother learning another syntax just to develop on windows? It really doesn't make any sense. Powershell only makes sense for IT admins whom have to manage windows networks, it makes no sense at all for developers deploying on *nix.
It does have some rough edges that may cause you to dismiss it as unusable, but it offers tab completion, colored text output, and a real scripting environment (not DOS batch scripting). Every serious Windows developer I've talked to nowadays uses it exclusively.