Как вывести объекты в различные координаты консольного окна powershell одновременно? - PullRequest
0 голосов
/ 03 января 2019

Я использую PowerShell в среде Win 10 уже несколько месяцев, так что я все еще новичок в PowerShell и пытаюсь использовать консоль PowerShell в качестве технической точки отображения, посредством которой она циклически переключается между различными компонентами данных и дисплеев.информация в различных координатах окна консоли.У меня проблема в том, что он может отображать данные только из одного конкретного цикла в любой момент времени.Я подозреваю, что понадобится тип многопоточности, такой как runspaces или psjobs, но я полагаю, что они являются фоновыми функциями и не могут отображать данные в режиме реального времени, поэтому не уверен, поддерживает ли консоль такой запрос.Возможно, есть и другой способ сделать это

Я пытался поместить все свои сценарии и команду get в один цикл, но это не обеспечивает "внешний вид" и ощущение, которого мы пытаемся достичь.Я хочу иметь возможность использовать все окно в качестве объекта для вывода объектов.Я рассмотрел psjobs и runspaces, но они, кажется, работают в фоновом режиме.

Таким образом, представленный код должен выводить объекты get-service и объекты get-process с координатами, указанными одновременно.

function OBJ1{
[console]::setcursorposition(60,120)
Get-Process
]}
function OBJ2{
[console]::setcursorposition(10,70)
Get-Service
]}
Workflow obj3
{ 
Parallel 
{ 
obj1
obj2
} 
} 
obj3

Вместо этого я получаю следующие ошибки:

<!-- language: lang-none -->
Microsoft.PowerShell.Utility\Write-Error : Exception calling "SetCursorPosition" with "2" argument(s): "The handle is invalid.
"
At obj3:20 char:20
+
    + CategoryInfo          : NotSpecified: (:) [Write-Error], RemoteException
    + FullyQualifiedErrorId : System.Management.Automation.RemoteException,Microsoft.PowerShell.Commands.WriteErrorCommand
    + PSComputerName        : [localhost]

Microsoft.PowerShell.Utility\Write-Error : Exception calling "SetCursorPosition" with "2" argument(s): "The handle is invalid.
"
At obj3:20 char:20
+
    + CategoryInfo          : NotSpecified: (:) [Write-Error], RemoteException
    + FullyQualifiedErrorId : System.Management.Automation.RemoteException,Microsoft.PowerShell.Commands.WriteErrorCommand
    + PSComputerName        : [localhost]
...