Я понятия не имею, что такое websocat или когда-либо имел причину искать его.Тем не менее, это не то, как вы запускаете внешний exe / cmd для PowerShell.Запуск exe из PowerShell - это распространенный, хорошо документированный сценарий использования с множеством статей на эту тему в Интернете.Нужно просто искать это.В большинстве случаев это просто вопрос использования оператора вызова непосредственно в exe.
& 'websocat' 'ws://myserver.com' 'some command(s)'
См. Следующее:
PowerShell: Запуск исполняемых файлов
Решение проблем с внешними командными строками в PowerShell
Лучшие 5 советов по запуску внешних команд в Powershell
Использование Windows PowerShell длязапускать старые инструменты командной строки (и их самые странные параметры)
Выполнение внешних команд в PowerShell выполнено правильно
Захват вывода из внешней команды зависит от того,команда поддерживает ожидаемые потоки и может использовать перенаправления (см. файлы справки) ...
about_Redirection |Microsoft Docs
# get function / cmdlet details
# (Get-Command -Name about_Redirection).Parameters
Get-help -Name about_Redirection -Full
Get-help -Name about_Redirection -Online
Get-help -Name about_Redirection -Examples
*>&1 Sends all output types Test-Output *>> Test-Output.txt
(*) to the success output Test-Output *>&1
stream.
2>&1 Sends errors (2) and Get-Process none, Powershell 2>&1
success output (1)
to the success
output stream.
... или exe должен предоставить способ записи в файл, который вы можете прочитать позже.Опять же, есть много рекомендаций по этому вопросу, и есть люди, которые предоставляют готовые сценарии / инструменты, помогающие с этим типом вещей.
Пример: Захват вывода из инструментов командной строки с помощью PowerShell
Если для работы данного инструмента требуется автоматизация пользовательского интерфейса, то это совсем другое дело.Вы можете использовать метод PowerShell и SendKeys ...
Start-Process -FilePath 'telnet.exe' -ArgumentList 'Some IPA or URL' '-f E:\Temp\Log.txt'
[system.reflection.assembly]::loadwithpartialname("System.Windows.Forms")
$SendKeys = [System.Windows.Forms.SendKeys]
$sendkeys::SendWait('Some Command')
Start-Sleep -Seconds .5
$sendkeys::SendWait("{ENTER}")
Start-Sleep -Seconds .5
$sendkeys::SendWait("exit{ENTER}")
... или использовать специальный инструмент, такой как Selenium, AutoIT и т. Д.