从日志文件行或 telnet 输出中获取变量值 (Powershell)

Get variable value from log file line or telnet output (Powershell)

我有一项服务可以从 telnet 输出中为我提供一些数据。 输出看起来像 string: some command 123 我只需要抓取值 - 123,但我不知道如何分割线。

我的 powershell 脚本:

$wshell = new-object -com wscript.shell
start-process telnet -argumentlist "127.0.0.1 7000 -f C:00_output.txt"; 
sleep 3; 
$wshell.SendKeys("some command{ENTER}")
sleep 1;
$wshell.SendKeys("quit{ENTER}")
Select-String "C:00_output.txt" -pattern "some command" | Select-Object -Last 1

您可以将最后一行更改为以下代码,该代码使用正则表达式提取前缀为 space 的数字字符串,将它们转换为 int,并将其保存到变量。

$MyVariable = 0
Select-String "C:00_output.txt" -pattern "some command" | Select-Object -Last 1 | ForEach-Object {
    if($_ -match '^.+\s(?<Number>\d+).*$') { $script:MyVariable = [int]($Matches.Number) }    
}
Write-Host "MyVariable: $MyVariable"