我正在尝试在C#应用程序中执行此命令(列出Firefox扩展)。
Get-ChildItem -Path $env:USERPROFILE"\AppData\Roaming\Mozilla\Firefox\Profiles\*\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上发现了一些类似的问题,但我真的无法回答这个问题。有谁知道如何修复我的代码?
答案 0 :(得分: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");
}