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
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.
Ở 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)
+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. –
Có cách nào để cắm mã VB không? –
David - Vâng. Bạn có thể sử dụng [-Language {CSharp | CSharpVersion3 | VisualBasic | JScript}] cờ –
Bạn có thể nhìn vào nó một trong hai cách:
- Làm thế nào bạn có thể tận dụng PowerShell bên trong chương trình # C
- 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.
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
- 1. Tôi có thể làm gì với RaisePropertyChanged?
- 2. Tôi có thể làm gì với các lớp học ảo?
- 3. Tôi có thể làm gì với biến số enum?
- 4. Có điều gì lạ với PowerShell và chuyển tiếp dấu gạch chéo không?
- 5. Dấu ba chấm làm gì trong PowerShell?
- 6. Làm thế nào tôi có thể vứt bỏ System.Xml.XmlWriter trong PowerShell
- 7. Tôi có thể nhận được intellisense trong PowerShell?
- 8. Bạn có thể làm gì với AppleScript?
- 9. Làm thế nào tôi có thể nhận được 7za.exe để chạy qua Powershell Remoting?
- 10. Có thể làm gì với hys.settrace?
- 11. Tôi có thể sử dụng System.Core.dll/System.Collections.Generic.HashSet trong powershell không?
- 12. Làm cách nào để tôi có thể nhận xét một nút trong XML bằng PowerShell?
- 13. Tách chuỗi bằng PowerShell và làm điều gì đó với mỗi mã thông báo
- 14. Điều gì đã xảy ra với Arel và tôi phải làm gì với Arel :: SelectManager?
- 15. Làm thế nào tôi có thể chuyển đổi một hastable thành một chuỗi json trong PowerShell?
- 16. curl http: //url/script.ps1 | powershell có thể?
- 17. Tôi có thể làm gì để chuyển danh sách từ C# sang F #?
- 18. C# .NET - Làm thế nào tôi có thể lấy typeof() để làm việc với thừa kế?
- 19. Biểu tượng "@" làm gì trong Powershell?
- 20. CreateChooser là gì khi tôi phải sử dụng Intents? Tôi có thể làm gì với phương pháp này?
- 21. Có thể sử dụng Console2 với Powershell không?
- 22. Tôi có thể làm gì với biến tĩnh được bảo vệ/riêng tư?
- 23. Powershell có thể nói, nhưng nó có thể viết nếu tôi nói không?
- 24. Tôi có thể đặt Powershell bắt đầu-công việc với ưu tiên thấp?
- 25. Tôi có thể làm gì khi sử dụng awk mà tôi không thể làm trong Perl?
- 26. Tôi có thể làm gì về url bảo mật?
- 27. Powershell: Làm thế nào tôi có thể ngừng hiển thị lỗi trong tập lệnh?
- 28. Tại sao ứng dụng của tôi sử dụng nhiều bộ nhớ hơn sau khi tôi nén nó với UPX và tôi có thể làm gì với nó?
- 29. Làm thế nào tôi có thể Rethrow một ngoại lệ từ khối catch trong Powershell?
- 30. Trong XSLT tôi có thể tokenize trên không có gì?
+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ý. –