小编fro*_*ake的帖子

如何在 C# 中停止 powershell 调用程序

我正在使用 C# 调用 powershell 命令,并且 powershell 命令在后台调用。我想终止后台线程。每次,我终止后台线程时,powershell仍在运行,这导致我无法再次运行该线程。有什么方法可以终止powershell执行吗?

后台线程如下:

Task.run(()=>{ while(...) {...                             
if (cancellationToken.IsCancellationRequested)
{
    cancellationToken.ThrowIfCancellationRequested();
}}}); 

Task.run(()=>{ 
    while(...) { powershell.invoke(powershellCommand);// it will execute here, I don't know how to stop. 
} })
Run Code Online (Sandbox Code Playgroud)

c# powershell

4
推荐指数
2
解决办法
3511
查看次数

如何在 C# 中显示 PSObject

我正在通过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;
}
Run Code Online (Sandbox Code Playgroud)

如果 PSObject 有许多我需要的属性,它就可以工作,但在这种情况下,如果 PSObject 是一个字符串,则结果不是我想要的。它将显示“长度:40”,而不是字符串本身。

还有一个问题:如果我执行几个PowerShell命令,为什么会显示所有结果,包括之前的结果。比如我执行“ls;get-process”,它会显示“ls”的结果和“get-process”的结果。

c# powershell

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×2

powershell ×2