20

我运行以下批处理文件来建立与设备的 telnet 会话并创建一个文件,该文件将保存从设备中提取的信息。

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

建立 telnet 会话后,我键入命令将数据转储到 Datacast.log,如最后一行代码中指定的那样。我希望以某种方式在批处理文件中包含命令(例如“M3,1,999”),但我找不到类似的示例。

是否可以使用批处理文件执行此操作?

4

5 回答 5

42

也许是这样的?

创建批处理以连接到 telnet 并运行脚本以发出命令? 资源

批处理文件(名为 Script.bat ):

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

命令文件(名为 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 " "
于 2012-11-02T17:50:12.720 回答
5

telnet.exe如果不使用另一个脚本(需要键盘焦点),微软就无法编写脚本,如this question的另一个答案所示,但有一个免费的

Telnet Scripting Tool v.1.0 by Albert Yale

你可以用谷歌搜索它,它既可编写脚本又可记录,并且可以从批处理文件启动而无需键盘焦点。

使用键盘焦点时 telnet.exe 和第二个脚本的问题是,如果在脚本运行时有人正在使用计算机,那么脚本很可能会由于鼠标单击和键盘使用而失败这一刻。

于 2014-07-06T13:53:11.740 回答
2

我想出了一种远程登录服务器并更改文件权限的方法。然后将文件 FTP 回您的计算机并打开它。希望这将回答您的问题并帮助 FTP。

文件路径变量已设置,因此您始终登录并 cd 到同一目录。您可以将其更改为提示,以便用户可以手动输入。

:: 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% < telnetcmd.dat


echo user %username%> 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
于 2013-04-10T16:36:29.793 回答
0

这是旧的,但其他人可能会像我一样偶然发现它。当您连接到 DataCast 时,您正在与可以访问数据库的守护进程交谈。目的是让客户编写一些代码来访问数据库并将结果存储在某处。碰巧 telnet 可以手动访问数据。netcat 也应该工作。ssh 显然不会。

于 2014-10-30T15:48:16.053 回答
0

首先,一个警告。为什么要使用 telnet?telnet 是一种旧协议,不安全且不适合远程访问。它已(几乎)完全被ssh取代。

要回答你的问题,这取决于。这取决于您使用的 telnet 客户端。如果您使用 microsoft telnet,则不能. Microsoft telnet 无法从批处理文件或命令行发送命令。

于 2012-11-02T17:41:39.017 回答