2012-03-26 146 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不會做或很難做到,比如遠程執行,安全等。