VBScript在与PowerShell相比较方面的功能非常有限。PowerShell可以访问所有.NET库,因此您可以利用类似于C#或VB.NET的语言所能实现的任何功能。您还可以加载任何.NET DLL并利用第三方库,例如在codeplex上找到的库。
PowerShell有一些限制,但您很少会遇到它们。PowerShell在单个线程上运行,因此如果尝试调用任何创建新线程(如BackgroundWorker)的.NET库,则会遇到问题。话虽如此,在VBScript中无法进行任何并发处理。在PowerShell中,至少有后台作业。
PowerShell也是交互式的。这使您可以先在控制台上尝试各种操作,然后将其集成到更大、更复杂的脚本中。
还有许多免费的PowerShell开发和调试工具可用。它实际上自带一个叫ISE的工具,Quest提供了另一个叫PowerGUI的工具。如果您想要类似于VBScript的东西,则必须使用像Visual Studio这样的工具,并使用cscript //X启动脚本,或使用价格昂贵的PrimalScript等工具。
与VBScript相比,PowerShell通常允许您用更少的代码实现更多的功能。在某些情况下,您可以将数百行的VBScript减少到仅有十行的PowerShell代码。
如果您在某个时候阅读BASH脚本,那么掌握了PowerShell后,您可能会惊讶地发现它很熟悉。因为语法非常相似。此外,将PowerShell代码转换为C#或反之亦然也很容易。这很棒,因为如果找不到直接使用PowerShell执行某项任务的示例,则可能在C#中找到示例,而且可以相对轻松地将其转换为PowerShell代码。