2012-03-26 7 views
13

Sự khác nhau chính giữa Powershell và VBScript có thể làm cho tôi lựa chọn cái nào với nhau khi lập kế hoạch một dự án mới với loại kịch bản này?Ưu điểm của việc chạy Powershell thay cho VBScript là gì?

+2

Câu hỏi hay, tôi thực sự cần biết về điều này. Hoàn toàn ghét một số chính sách của SO. –

+0

Câu hỏi này mang tính xây dựng ... –

Trả lời

14

VBScript là khá hạn chế trong những gì nó có thể làm so với PowerShell. PowerShell có quyền truy cập vào tất cả các thư viện .NET để bạn có thể tận dụng mọi thứ bạn có thể với một ngôn ngữ như C# hoặc VB.NET. Bạn cũng có thể tải bất kỳ DLL .NET nào và tận dụng các thư viện của bên thứ ba như các thư viện được tìm thấy trên codeplex.

PowerShell có một số hạn chế, nhưng bạn hiếm khi gặp phải. Powershell chạy trên một chuỗi duy nhất vì vậy nếu bạn cố gắng gọi bất kỳ thư viện .NET nào tạo ra một chuỗi mới như BackgroundWorker, bạn sẽ gặp phải sự cố. Điều đó nói rằng, bạn không thể làm bất kỳ xử lý đồng thời với VBScript. Trong PowerShell, ít nhất bạn cũng có các công việc nền.

PowerShell cũng tương tác. Điều này cho phép bạn thử nghiệm mọi thứ ở bàn điều khiển trước và tích hợp chúng thành các tập lệnh phức tạp hơn.

Ngoài ra còn có một số công cụ phát triển và gỡ lỗi miễn phí có sẵn cho PowerShell. Nó đi kèm với một thực sự được gọi là ISE. Một cái khác có sẵn từ Quest gọi là PowerGUI. Nếu bạn muốn một cái gì đó tương tự trong VBScript bạn sẽ phải sử dụng một cái gì đó như Visual Studio và khởi động kịch bản của bạn với cscript //X hoặc sử dụng một cái gì đó như PrimalScript đó là tốn kém.

PowerShell thường cho phép bạn làm được nhiều việc hơn với ít hơn so với VBScript. Trong một số trường hợp, bạn có thể giảm VBscripts là hàng trăm dòng chỉ còn hàng chục dòng trong PowerShell.

Nếu bạn thấy mình đang đọc tập lệnh BASH tại một thời điểm nào đó, bạn có thể ngạc nhiên về mức độ quen thuộc của nó sau khi đã chọn PowerShell. Cú pháp tương tự. Ngoài ra, thật dễ dàng để chuyển đổi mã PowerShell thành C# và ngược lại. Điều này là tuyệt vời bởi vì nếu bạn không thể tìm thấy một ví dụ về làm thế nào để làm một cái gì đó trực tiếp với PowerShell bạn chỉ có thể tìm thấy một ví dụ trong C# và nó có thể được chuyển đổi sang PowerShell khá dễ dàng.

2

Powershell trừ khi bạn có lý do mạnh mẽ không, chỉ đơn giản vì đó là những gì Microsoft đã thiết kế cho hệ điều hành và tự động hóa ứng dụng trên tất cả các nền tảng của nó. Tuy nhiên, bạn có thể muốn đọc chi tiết trong trang web powerhell của Microsoft. Nó có nhiều điều mà vbscript sẽ không làm hoặc rất khó thực hiện, chẳng hạn như thực thi từ xa, bảo mật, v.v.