【发布时间】:2021-05-04 19:48:43
【问题描述】:
我正在使用 C# 构建一个 PowerShell 主机,我想在调用 PowerShell 后显示结果。现在我使用以下方法:
public static string GetLogQueriedString(
PSMemberInfoCollection<PSPropertyInfo> PSPropertyCollection)
{
string line = string.Empty;
foreach (var item in PSPropertyCollection)
{
if (!line.Equals(string.Empty)) line += ",";
line += item.Name + " : " + item.Value;
}
return line;
}
如果 PSObject 有很多我需要的属性,它就可以工作,但在这种情况下,如果 PSObject 是一个字符串,结果不是我想要的。它将显示“长度:40”,而不是字符串本身。
还有一个问题:如果我执行多个 PowerShell 命令,为什么会显示所有结果,包括之前的结果。比如我执行“ls;get-process”,它会显示“ls”的结果和“get-process”的结果。
【问题讨论】:
-
这个
"ls; get-process"看起来像是在告诉 PowerShell 在同一个管道中执行两个命令。它将这样做并返回两个结果。它在控制台中也是如此。
标签: c# powershell