Можно ли создать строку в C # и использовать ее с PowerShell? - PullRequest
3 голосов
/ 21 сентября 2010

Можно ли создать строку в C # .exe и использовать эту строку в PowerShell?

Ответы [ 4 ]

5 голосов
/ 21 сентября 2010

Да.

Ваш вопрос довольно расплывчатый - используете ли вы сценарий powershell для создания объекта из сборки c #, а затем используете этот объект? Если это так, просто установите свойство для нужной вам строки и получите доступ к нему как обычно из powershell.

Или, если это статический метод, вы можете просто вызвать его

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

Если вы работаете с c # exe, вы можете просто вывести его с writeline, и powershell подберет его:

.\myexe.exe > $someVar

Или вы можете записать его как командлет , и ваш код c # может участвовать в конвейере.

4 голосов
/ 21 сентября 2010

Если вы размещаете PowerShell в приложении C # и хотите получить доступ к строковой переменной, определенной в C #, из запускаемого сценария PowerShell, вот как это сделать:

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

затем обратитесь к этой переменной в вашем скрипте PowerShell как $foo.

1 голос
/ 21 сентября 2010

Да. Вы можете использовать .NET классы в powershell, например, вы можете использовать:

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

при работе со статическим методом.

0 голосов
/ 21 сентября 2010

Powershell использует .net Framework под крышками, все объекты являются объектами CLR

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...