Python telnetlib write()函数不执行冗长的命令
我正在尝试使用telnetlib向设备发送命令。以下是我正在使用的命令:Python telnetlib write()函数不执行冗长的命令,python,python-2.7,python-3.x,telnetlib,Python,Python 2.7,Python 3.x,Telnetlib,我正在尝试使用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函数是
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
可能与转义字符>>有关 或者类似的
tn.write('c:/Test/Minte/TE.exe "c:/data/test/bin/Test.dll >> c:/test/test.log" \r\n')
是的,它最多只能包含50个字符。你在做什么?
tn.读得非常渴望()
这可能与设备一次可以缓冲多少有关。打开命令提示符打开telnet会话,看看它可以让您发送多少。在telnet上,我可以发送更多。。。我一直在telnet上手动使用它,它工作得非常好。我也遇到了类似的问题。执行的命令长度超过34个字符,但当您使用expect()命令读取输出时,位置>34处的字符也将被读取!write()函数可以执行的命令长度似乎有限制。我发出了一个50个字符或更少的命令,它成功了。同一命令,我将文件名更改为更长,但不起作用。
tn.write('c:/Test/Minte/TE.exe "c:/data/test/bin/Test.dll >> c:/test/test.log" \r\n')