Powershell is an obvious candidate, although everything that you described above can be achieved (with some pain) in plain old batch files. Note that batch files support a variety of shell-style lookups, redirects, and other functions, but they are not as good at this as unix shells. There is a good link for the batch file syntax at http://www.ss64.com/ntsyntax/ ; fooobar.com/questions/84346 / ... contains many links to Powershell resources.
You can also get unix shell ports that run in windows; the most useful are cygwin , unxutils, and Microsoft Windows Services for Unix . Cygwin is a complete environment that is really designed to port unix software to run on Windows. It is quite heavy and maps window letters to a path in the form /cygdrive/c/... , so the paths are incompatible with native win32 commands. Unxutils is based on mscvrt.dll and will use its own win32 C:\ stylesheets, which means that it is compatible with native windows commands. This greatly improves the integration of functions like unix scripts (including sed and awk) with existing Windows command-line utilities.
Windows also comes with a windows script host , which will allow you to script things that support the COM API. It supports vbscript and javascript and has its own API.
Finally, there are a number of third-party scripting languages, such as Python or Perl, that will run on Windows. Good Windows distributions of these languages ββcan be obtained from Activestate - Activestate python is a very mature and stable system. You can also use the .Net version of Python called IronPython , which will use the .Net libraries.
In fact, most scripting languages ββhave a fairly mature Windows port.
source share