2009-04-12 46 views
42

Tôi có một sự hiểu biết khá về C# và một sự hiểu biết rất cơ bản về quyền hạn. Tôi đang sử dụng Windows PowerShell CTP 3, điều này thực sự thú vị. Nhưng tôi muốn vượt ra ngoài viết kịch bản/chức năng. Có công cụ thú vị nào để làm với C# không?Tôi có thể làm gì với C# và Powershell?

Trả lời

34

Tôi nghĩ điều thú vị nhất mà bạn có thể làm với C# và PowerShell là xây dựng nhóm lệnh của. Đây là những plugin cơ bản cho PowerShell được viết bằng mã được quản lý và hoạt động như các hàm bình thường. Họ có một cặp danh từ và nhiều chức năng bạn đã sử dụng thực sự là các lệnh ghép ngắn bên dưới mui xe.

http://msdn.microsoft.com/en-us/magazine/cc163293.aspx

+0

+1 Cmdlets có thể được thực sự mạnh mẽ, ví dụ để cung cấp giao diện dòng lệnh cho các ứng dụng và dịch vụ được quản lý. –

8

Trả lời là 'Phụ thuộc'. Bạn có thể làm nhiều thứ khác nhau với C# (xây dựng các cửa sổ, máy khách web và các ứng dụng khách).

Bạn có thể gọi tập lệnh PowerShell từ C#. Nhìn vào trang này ==>link

Bạn thậm chí có thể chuyển đổi C# mã của bạn để PowerShell ==>link

56

Ở cấp độ cao nhất mà bạn có hai lựa chọn khác nhau Bạn có thể từ một chương trình C# chủ PowerShell và thực hiện lệnh PowerShell qua RunSpaces và đường ống.

Hoặc bạn có thể từ trong PowerShell chạy mã C#. Điều này có thể được thực hiện theo hai cách. Với snapshot PowerShell, một dll biên dịch cung cấp các lệnh ghép ngắn PowerShell và các nhà cung cấp điều hướng, hoặc thông qua lệnh ghép ngắn mới Thêm-Type, cho phép bạn nhập động mã C#, VB, F #. Từ sự giúp đỡ

$source = @" 
public class BasicTest 
{ 
    public static int Add(int a, int b) 
    { 
     return (a + b); 
    } 

    public int Multiply(int a, int b) 
    { 
     return (a * b); 
    } 
} 
"@ 

Add-Type -TypeDefinition $source 
[BasicTest]::Add(4, 3) 
$basicTestObject = New-Object BasicTest 
$basicTestObject.Multiply(5, 2) 
+8

+1 để lưu trữ PowerShell dưới dạng công cụ tạo tập lệnh cho ứng dụng của bạn. Built in .NET scripting với một ngôn ngữ nhanh chóng trở thành một công cụ chủ yếu. –

+0

Có cách nào để cắm mã VB không? –

+3

David - Vâng. Bạn có thể sử dụng [-Language {CSharp | CSharpVersion3 | VisualBasic | JScript}] cờ –

5

Bạn có thể nhìn vào nó một trong hai cách:

  1. Làm thế nào bạn có thể tận dụng PowerShell bên trong chương trình # C
  2. thế nào có thể bạn tận dụng C# lập trình bên trong PowerShell.

Ở một mức độ nào đó, chúng là các câu hỏi hoàn toàn khác nhau với các câu trả lời khác nhau.

Từ C#, bạn có thể tận dụng công cụ PowerShell, không gian chạy, đường ống, v.v. Như được thực hiện với Exchante, bạn có thể sử dụng C# để thực hiện tất cả các công cụ GUI, sau đó gọi lệnh ghép ngắn PowerShell. Tùy chọn này phù hợp nếu bạn có thể tìm thấy lệnh ghép ngắn hoặc tập lệnh PowerShell để tận dụng.

Từ PowerShell, bạn sử dụng C# để mở rộng những gì bạn có thể làm trong PowerShell. Bạn có thể tạo các cmdlts và các nhà cung cấp để cho phép người khác truy cập dữ liệu ứng dụng. Hoặc bạn chỉ có thể tạo các đối tượng có thể được sử dụng trong một kịch bản PowerShell. Tùy chọn này là cách bạn giúp mở ứng dụng của mình để được quản lý theo cách tự động hơn.

Vì vậy, tùy thuộc vào những gì bạn đang tìm kiếm để làm, bạn có các tùy chọn.

2

Scott Hanselman aka Hanselminutes có một số podcast về Powershell, CmdLets, C# và hơn thế nữa. Nó là tốt nhất nếu bạn muốn tìm hiểu nó là gì, nó hoạt động như thế nào và hơn thế nữa. Thực hiện tìm kiếm trên trang web của anh ấy để lấy podcast.

Danh sách PS podcast liên quan trên trang web của mình (theo thứ tự thời gian đảo ngược):

#190: State of Powershell/Lee Holmes & Jason Shirk
#162: Powershell 2.0
#49: Powershell/Bruce Payette
#36: Jeffrey Snover, Powershell architect
#24: Windows Powershell (MONAD), Part II

Các vấn đề liên quan