是否可以在C#中创建一个字符串并将其与PowerShell一起使用?

时间:2010-09-21 12:18:11

标签: c# powershell

是否可以在C#.exe中创建字符串并在PowerShell中使用此字符串?

4 个答案:

答案 0 :(得分:5)

您的问题非常模糊 - 您是否使用powershell脚本从c#程序集创建对象,然后使用该对象?如果是这样,只需将属性设置为您想要的字符串,然后从powershell中正常访问它。

或者,如果它是一个静态方法,你可以调用它

   [My.Assembly.Type]::GetSomeString()

如果您正在运行c#exe,您只需使用writeline输出它,PowerShell就会将其取出:

.\myexe.exe > $someVar

或者,您可以write it as a cmdlet,并且您的c#代码可以参与管道。

答案 1 :(得分:4)

如果您在C#应用程序中托管PowerShell,并且希望从运行的PowerShell脚本访问C#中定义的字符串变量,请按以下步骤操作:

string foo = "some string defined in C# to be used in PowerShell";
runspace.SessionStateProxy.SetVariable("foo", foo);

然后,您可以在PowerShell脚本中将此变量引用为$foo

答案 2 :(得分:1)

是。您可以在powershell中使用.NET类,例如,您可以使用:

PS C:\> [System.Environment]::GetLogicalDrives()

处理静态方法时。

答案 3 :(得分:0)

Powershell使用.net框架,所有对象都是CLR对象