telnetlib的write()函数无法执行长命令

1 投票
2 回答
1216 浏览
提问于 2025-04-18 02:15

我正在尝试使用telnetlib向一个设备发送命令。下面是我使用的命令:

tn = telnetlib.Telnet("10.62.48.96")

tn.write('c:/Test/Minte/TE.exe c:/data/test/bin/Test.dll >> c:/test/test.log \r\n')

print "Read",tn.read_until('cmd.exe ', 90)

我收到的响应只打印到Test.dll,之后就没有任何内容了。我在怀疑write这个函数是否可以发送包含多个空格的命令。

我知道命令没有被执行,因为在目标路径下没有生成test.log文件。

响应:

C:\windows\system32>c:/Test/Minte/TE.exe c:/data/test/bin/Test.dll←[4;71H

2 个回答

0

是的,它的字符限制是50个。你可以试试用 tn.read_very_eager() 这个方法。

0

可能这和转义字符有关 >> 。

http://ss64.com/nt/syntax-esc.html

tn.write('"c:/Test/Minte/TE.exe c:/data/test/bin/Test.dll" >> c:/test/test.log \r\n')

或者类似的东西

tn.write('c:/Test/Minte/TE.exe "c:/data/test/bin/Test.dll >> c:/test/test.log" \r\n')

撰写回答