是否可以在C#.exe中创建字符串并在PowerShell中使用此字符串?
答案 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对象