2012-03-26 151 views
13

Powershell和VBScript之间的主要区别在于,当使用这种脚本规划新项目时,我会选择哪一种?运行Powershell而不是VBScript有什么优势?

+2

真棒问题,我真的需要知道这件事。绝对讨厌一些SO的政策。 – 2014-04-25 21:46:55

+0

这个问题是有建设性的... – 2016-10-06 13:31:36

回答

14

与PowerShell相比,VBScript的功能非常有限。 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经常允许您以更少的工作做更多的事情。在某些情况下,您可以将数百行的VB脚本数量减少到PowerShell中的数十行。

如果您在某个时候发现自己正在阅读BASH脚本,您可能会感到惊讶,因为在拿起PowerShell之后它有多熟悉。语法相似。将PowerShell代码转换为C#也是很容易的,反之亦然。这很好,因为如果你找不到一个直接使用PowerShell的例子,你可以在C#中找到一个例子,它可以很容易地转换为PowerShell。

2

Powershell,除非您有充分的理由不这样做,因为这是Microsoft为所有平台上的操作系统和应用程序自动化设计的。不过,您可能需要阅读Microsoft PowerShell站点中的详细信息。它有许多事情,VBScript不会做或很难做到,比如远程执行,安全等。