Is it possible to use a batch file to establish a telnet session, send a command and have the output written to a file?

匿名 (未验证) 提交于 2019-12-03 01:00:01

问题:

I run the following batch file to establish a telnet session to a device and create a file that will hold information pulled from the device.

CD\ COLOR 0E CLS @echo off ECHO This will start the connection to the Heraeus QuicK-Lab DATACAST ENtouch.  pause telnet 172.17.0.16 4224 -f C:\LogFiles\Datacast.log 

After the telnet session is established I type in a command to dump data to Datacast.log as specified in the last line of code. I am hoping to include the command ("M3,1,999" for example) in the batch file somehow but I can find no similar examples.

Is it possible to do this with a batch file?

回答1:

Maybe something like this ?

Create a batch to connect to telnet and run a script to issue commands ? source

Batch File (named Script.bat ):

     :: Open a Telnet window    start telnet.exe 192.168.1.1    :: Run the script      cscript SendKeys.vbs  

Command File (named SendKeys.vbs ):

set OBJECT=WScript.CreateObject("WScript.Shell") WScript.sleep 50  OBJECT.SendKeys "mylogin{ENTER}"  WScript.sleep 50  OBJECT.SendKeys "mypassword{ENTER}" WScript.sleep 50  OBJECT.SendKeys " cd /var/tmp{ENTER}"  WScript.sleep 50  OBJECT.SendKeys " rm log_web_activity{ENTER}"  WScript.sleep 50  OBJECT.SendKeys " ln -s /dev/null log_web_activity{ENTER}"  WScript.sleep 50  OBJECT.SendKeys "exit{ENTER}"  WScript.sleep 50  OBJECT.SendKeys " " 


回答2:

The microsoft telnet.exe is not scriptable without using another script (which needs keyboard focus), as shown in another answer to this question, but there is a free

Telnet Scripting Tool v.1.0 by Albert Yale

that you can google for and which is both scriptable and loggable and can be launched from a batch file without needing keyboard focus.

The problem with telnet.exe and a second script when keyboard focus is being used is that if someone is using the computer at the time the script runs, then it is highly likely that the script will fail due to mouse clicks and keyboard use at that moment in time.



回答3:

I figured out a way to telnet to a server and change a file permission. Then FTP the file back to your computer and open it. Hopefully this will answer your questions and also help FTP.

The filepath variable is setup so you always login and cd to the same directory. You can change it to a prompt so the user can enter it manually.

:: This will telnet to the server, change the permissions,  :: download the file, and then open it from your PC.   :: Add your username, password, servername, and file path to the file. :: I have not tested the server name with an IP address.  :: Note - telnetcmd.dat and ftpcmd.dat are temp files used to hold commands  @echo off SET username= SET password= SET servername= SET filepath=  set /p id="Enter the file name: " %=%  echo user %username%> telnetcmd.dat echo %password%>> telnetcmd.dat echo cd %filepath%>> telnetcmd.dat echo SITE chmod 777 %id%>> telnetcmd.dat echo exit>> telnetcmd.dat telnet %servername%  ftpcmd.dat echo %password%>> ftpcmd.dat echo cd %filepath%>> ftpcmd.dat echo get %id%>> ftpcmd.dat echo quit>> ftpcmd.dat  ftp -n -s:ftpcmd.dat %servername% del ftpcmd.dat del telnetcmd.dat 


回答4:

First of all, a caveat. Why do you want to use telnet? telnet is an old protocol, unsafe and impractical for remote access. It's been (almost)totally replaced by ssh.

To answer your questions, it depends. It depends on the telnet client you use. If you use microsoft telnet, you can't. Microsoft telnet does not have any mean to send commands from a batch file or a command line.



回答5:

This is old, but someone else may stumble on it as I did. When you connect to the DataCast, you are talking to a daemon that can access the database. It was intended that a customer would write some code to access the database and store the results somewhere. It just happens that telnet works to access data manually. netcat should also work. ssh obviously will not.



回答6:

Yes. It is possible with help of another executable called telnetd.exe. I have developed this executable to automate telnet session using windows batch file.

Usage

telnetd.exe script.txt outputfilename.txt

scripts.txt -> for the telnet commands

outputfilename.txt -> to store the output of your commands.

After the execution of the batch file you can see both outputs and logs from telnetlog.txt. This telnetlog.txt will help you to troubleshoot the commands and responses.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!