web-dev-qa-db-fra.com

Est-il possible d'utiliser un fichier de commandes pour établir une session telnet, envoyer une commande et faire en sorte que la sortie soit écrite dans un fichier?

J'exécute le fichier de commandes suivant pour établir une session telnet sur un périphérique et créer un fichier contenant les informations extraites du périphérique. 

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

Une fois la session Telnet établie, je tape une commande pour transférer les données dans Datacast.log, comme indiqué dans la dernière ligne de code. J'espère inclure la commande ("M3,1,999" par exemple) dans le fichier de commandes, mais je ne trouve aucun exemple similaire. 

Est-il possible de faire cela avec un fichier de commandes? 

18
Ericj78

Peut-être quelque chose comme ça?

Créer un lot pour se connecter à telnet et exécuter un script pour émettre des commandes? la source

Fichier de commandes (nommé Script.bat):

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

Fichier de commande (nommé 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 " "
38
Mukul Goel

Microsoft telnet.exe ne peut être scripté sans utiliser un autre script (nécessitant un focus du clavier), comme indiqué dans une autre réponse à cette question, mais il existe une option gratuite. 

Telnet Scripting Tool v.1.0 by Albert Yale 

que vous pouvez google pour et qui est à la fois scriptable et connectable et peut être lancé à partir d'un fichier de commandes sans avoir besoin de focus clavier.

Le problème avec telnet.exe et un second script lorsque le focus clavier est utilisé est que si quelqu'un utilise l'ordinateur au moment de l'exécution du script, il est fort probable que le script échouera à cause des clics de souris et de l'utilisation du clavier moment dans le temps.

5
foxidrive

J'ai trouvé un moyen de telnet sur un serveur et de modifier une autorisation de fichier. Envoyez ensuite le fichier par FTP sur votre ordinateur et ouvrez-le. Espérons que cela répondra à vos questions et aidera également FTP.

La variable filepath est configurée pour que vous puissiez toujours vous connecter et vous connecter au même répertoire. Vous pouvez le changer en invite pour que l'utilisateur puisse le saisir manuellement. 

:: 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
3
JoBaxter

Tout d'abord, une mise en garde. Pourquoi voulez-vous utiliser telnet? telnet est un ancien protocole peu sûr et peu pratique pour l’accès à distance. Il a été (presque) totalement remplacé par ssh .

Pour répondre à vos questions, cela dépend. Cela dépend du client telnet que vous utilisez. Si vous utilisez Microsoft telnet, vous ne pouvez pas . Microsoft telnet n'a aucun moyen d'envoyer des commandes à partir d'un fichier de commandes ou d'une ligne de commande. 

0
PA.

C'est vieux, mais quelqu'un d'autre peut tomber dessus comme moi. Lorsque vous vous connectez au DataCast, vous parlez à un démon pouvant accéder à la base de données. Il était prévu qu'un client écrive du code pour accéder à la base de données et stocke les résultats quelque part. Il se trouve que telnet fonctionne pour accéder aux données manuellement. Netcat devrait également fonctionner. SSH ne sera évidemment pas.

0
critter43