我可以用C#和Powershell做什么?

Kre*_*dns 45 c# powershell powershell-2.0

我对C#有一个很好的理解,对powershell有一个非常基本的了解.我正在使用Windows PowerShell CTP 3,这非常有趣.但我想超越编写脚本/函数.C#有什么很酷的东西吗?

Sco*_*ein 60

在最高级别,您有两个不同的选项您可以从C#程序主机PowerShell并通过RunSpaces和管道执行PowerShell命令.

或者您可以在PowerShell中运行C#代码.这可以通过两种方式完成.使用PowerShell管理单元,提供PowerShell cmdlet和导航提供程序的已编译dll,或通过新的cmdlet Add-Type,它允许您动态导入C#,VB,F#代码.从帮助

$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)
Run Code Online (Sandbox Code Playgroud)

  • +1用于托管PowerShell作为应用程序的脚本引擎.内置.NET脚本,语言正在迅速成为主要工具. (8认同)
  • 大卫 - 是的.你可以使用[-Language {CSharp | CSharpVersion3 | VisualBasic | JScript}]标志 (3认同)

Jar*_*Par 34

我认为使用C#和PowerShell可以做的最有趣的事情就是构建CmdLet.这些本质上是PowerShell的插件,用托管代码编写,就像普通函数一样.它们有一个动词 - 名词对,你已经使用的许多函数实际上都是引擎盖下的cmdlet.

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


Sri*_*ddi 8

答案是'这取决于'.您可以使用c#(构建窗口,Web客户端和移动客户端)执行各种操作.

您可以从C#调用powershell脚本.看看这个网站==> 链接

您甚至可以将c#代码转换为powershell ==> 链接


Tho*_*Lee 5

您可以通过以下两种方式之一来查看它:

  1. 如何在C#程序中使用PowerShell
  2. 如何在PowerShell中利用C#编程.

在某种程度上,它们是完全不同的问题,具有不同的答案.

从C#开始,您可以利用PowerShell引擎,运行空间,管道等.与Exchante一样,您可以使用C#来执行所有GUI工作,然后调用PowerShell cmdlet来完成所有难题.如果您可以找到要利用的PowerShell cmdlet或脚本,则此选项是合适的.

在PowerShell中,您可以使用C#扩展在PowerShell中可以执行的操作.您可以创建cmdlts和提供程序以使其他人能够访问应用程序数据.或者,您可以创建可在PowerShell脚本中使用的对象.此选项可帮助您以更自动化的方式打开要管理的应用程序.

因此,根据您的目标,您可以选择.