telnetlib的write()函数无法执行长命令
我正在尝试使用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')