#c# #powershell
#c# #powershell
Вопрос:
Я пытаюсь выполнить эту команду внутри приложения на C # (перечислены расширения Firefox).
Get-ChildItem -Path $env:USERPROFILE"AppDataRoamingMozillaFirefoxProfiles*extensions.json" | Get-Content
Из документации MSDN я понял, что код должен выглядеть примерно так
PowerShell ps = PowerShell.Create();
ps.AddCommand("Get-ChildItem");
ps.AddParameter("Path", ""$env:USERPROFILE\AppData\Roaming\Mozilla\Firefox\Profiles\*\extensions.json"");
ps.AddCommand("Get-Content");
Collection<PSObject> results = ps.Invoke();
однако «результаты» есть null
(когда строки PS нет). Я нашел несколько похожих вопросов по SO, но ничего, что я мог бы использовать для ответа на это. Кто-нибудь знает, как я могу исправить свой код?
Ответ №1:
Вы можете попробовать этот код, чтобы получить желаемые результаты.Вместо использования PowerShell.Create
он использует RunspaceInvoke.Invoke
только полную команду в качестве параметра. Надеюсь, это поможет:
using (RunspaceInvoke invoke = new RunspaceInvoke())
{
Collection<PSObject>result = invoke.Invoke("Get-ChildItem -Path $env:USERPROFILE"\AppData\Roaming\Mozilla\Firefox\Profiles\*\extensions.json" | Get-Content");
}