ShellStream输出包含未知字符[重复]

问题描述 投票:1回答:1
我正在使用Ssh.Net及其StreamReader上的ShellStream从ssh控制台读取输出。如果您熟悉控制台输出,那么您肯定会了解典型的表格式数据。如:

COLUMN1 COLUMN2 COLUMN3 value1 value2 value3 value4 value5 value6 value7 value8 value9

我也直接通过SshCommand对象读取输出,并且那里没有任何格式错误。但是,当我使用StreamReader时,会得到诸如[m[1mX[m之类的神秘字符。 X是单个字符,通常由空格包围。这种情况仅发生在由多个空格包围的单个字符旁边。当字符用方括号括起来时,也会出现类似[9999[6n的问题

我还是会解析结果,所以我不介意这些字符,但是我需要知道它们是否真正有意义以及它们是否一致。如果两者都不是,请告诉我如何解决此问题,我将很高兴。

[如果有关系,我已连接到MikroTik路由器,并运行命令certificate print detail without-paging。标头中发生此错误,我正在使用此代码输出以获取结果并输出流:

Dim response As String = "" Dim reader As StreamReader = New StreamReader(shellStream) Dim writer As StreamWriter = New StreamWriter(shellStream) writer.WriteLine(cmd) writer.Flush() Thread.Sleep(500) Dim line As String = "" For i As Integer = 0 To 150 response += line line = reader.ReadLine response += vbCrLf Next Console.WriteLine(response)

vb.net ssh streamreader ssh.net
1个回答
0
投票
这些是ANSI转义序列-即(用相应的数字替换X):

[[Xm-文本图形模式(颜色,粗细等)]

[[XB-光标下移X

[Xn-可能是新行

有关更多信息,请查看hereherehere

如果有兴趣的话:我可以替换每个[Xm序列,因为我没有使用任何给定的文本格式

© www.soinside.com 2019 - 2024. All rights reserved.