C# 检查PowerShell窗口是否支持用户交互
我正在使用“PowerShellInstance”类在C#中执行PowerShell脚本,但我对commandlet“C# 检查PowerShell窗口是否支持用户交互,c#,powershell,C#,Powershell,我正在使用“PowerShellInstance”类在C#中执行PowerShell脚本,但我对commandlet“Clear Host”有问题。我得到了一些与主机程序或命令类型不支持用户交互相关的错误 但是,必须能够通过PowerShell直接执行此脚本(无需使用C#),因此,我希望仅当脚本是从PowerShell窗口中触发的,而不是从C#代码触发时,才执行“Clear Host”命令 到目前为止,我找到的唯一方法是将它包装在“Try{}Catch{}”块中,但我想知道是否有更好的解决方案。
Clear Host
”有问题。我得到了一些与主机程序或命令类型不支持用户交互相关的错误
但是,必须能够通过PowerShell直接执行此脚本(无需使用C#),因此,我希望仅当脚本是从PowerShell窗口中触发的,而不是从C#代码触发时,才执行“Clear Host
”命令
到目前为止,我找到的唯一方法是将它包装在“Try{}Catch{}
”块中,但我想知道是否有更好的解决方案。。。类似于“if($host.IsOk){}
”
谢谢好的,如果我理解正确,你想要这样的东西:
if($host.UI.RawUI.WindowTitle -match "PowerShell")
{
Clear-Host
}
else
{
"The script was executed from C#"
}
好吧,如果我理解正确的话,你想要这样的东西:
if($host.UI.RawUI.WindowTitle -match "PowerShell")
{
Clear-Host
}
else
{
"The script was executed from C#"
}
看起来不错,但它可靠吗?我的意思是,没有任何方法可以在没有标题包含“Powershell”的Powershell窗口中启动脚本吗?如果没有,我想你的答案就是我想要的:-)好的,你想从另一个PowerShell会话中启动PowerShell脚本吗,如下所示:启动进程PowerShell.exe-ArgumentList“-NoProfile-file script.ps1”或者在PowerShell窗口中启动一个全新的PowerShell脚本,如下所示:PowerShell.exe-windowstyle normal-executionpolicy remotesigned-file script.ps1也许您可以共享您的代码,以便我知道我们的立场:)看起来像,是的,但它可靠吗?我的意思是,没有任何方法可以在没有标题包含“Powershell”的Powershell窗口中启动脚本吗?如果没有,我想你的答案就是我想要的:-)好的,你想从另一个PowerShell会话中启动PowerShell脚本吗,如下所示:启动进程PowerShell.exe-ArgumentList“-NoProfile-file script.ps1”或者在PowerShell窗口中启动一个全新的PowerShell脚本,如下所示:PowerShell.exe-windowstyle normal-executionpolicy remotesigned-file script.ps1也许您可以共享您的代码,以便我知道我们的立场:)