Files
doslang-mirror/.qemu/monitor.ps1
T
2026-08-16 06:12:59 +09:00

37 lines
1014 B
PowerShell

param(
[Parameter(Mandatory = $true, Position = 0)]
[string]$Command
)
$ErrorActionPreference = 'Stop'
$client = [System.Net.Sockets.TcpClient]::new()
try {
$client.Connect('127.0.0.1', 4444)
$stream = $client.GetStream()
$stream.ReadTimeout = 1000
$writer = [System.IO.StreamWriter]::new($stream, [System.Text.Encoding]::ASCII, 1024, $true)
$writer.NewLine = "`n"
$writer.AutoFlush = $true
Start-Sleep -Milliseconds 100
while ($stream.DataAvailable) {
$buffer = New-Object byte[] 4096
[void]$stream.Read($buffer, 0, $buffer.Length)
}
$writer.WriteLine($Command)
Start-Sleep -Milliseconds 200
$result = New-Object System.Text.StringBuilder
while ($stream.DataAvailable) {
$buffer = New-Object byte[] 4096
$count = $stream.Read($buffer, 0, $buffer.Length)
[void]$result.Append([System.Text.Encoding]::ASCII.GetString($buffer, 0, $count))
}
$result.ToString().Trim()
}
finally {
$client.Dispose()
}