batch-file - por - crear archivo bat para ejecutar programa
¿Es posible usar un archivo por lotes para establecer una sesión de telnet, enviar un comando y hacer que la salida se escriba en un archivo? (5)
Ejecuto el siguiente archivo por lotes para establecer una sesión de telnet en un dispositivo y crear un archivo que contenga información extraída del dispositivo.
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
Una vez establecida la sesión de telnet, escribo un comando para volcar datos a Datacast.log como se especifica en la última línea de código. Espero incluir el comando ("M3,1,999" por ejemplo) en el archivo por lotes de alguna manera pero no puedo encontrar ejemplos similares.
¿Es posible hacer esto con un archivo por lotes?
Descubrí una forma de hacer telnet a un servidor y cambiar un permiso de archivo. Luego transfiera el archivo a su computadora y ábralo. Esperemos que esto responda a sus preguntas y también ayude a FTP.
La variable filepath está configurada para que siempre inicies sesión y cd en el mismo directorio. Puede cambiarlo a un mensaje para que el usuario pueda ingresarlo manualmente.
:: 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
El microsoft telnet.exe
no es telnet.exe
secuencias de comandos sin usar otra secuencia de comandos (que necesita enfoque del teclado), como se muestra en otra respuesta a esta pregunta, pero hay una telnet.exe
gratuita
Telnet Scripting Tool v.1.0 by Albert Yale
que puede buscar en Google y que puede ser ejecutable en secuencias de comandos y se puede registrar y se puede iniciar desde un archivo por lotes sin necesidad de utilizar el teclado.
El problema con telnet.exe y una segunda secuencia de comandos cuando se usa el enfoque del teclado es que si alguien está usando la computadora en el momento en que se ejecuta la secuencia de comandos, es muy probable que la secuencia de comandos falle debido a los clics del mouse y al uso del teclado. momento en el tiempo.
En primer lugar, una advertencia. ¿Por qué quieres usar telnet? telnet es un protocolo antiguo, inseguro y poco práctico para el acceso remoto. Ha sido (casi) totalmente reemplazado por ssh .
Para responder a sus preguntas, depende. Depende del cliente telnet que uses. Si usas Microsoft Telnet, no puedes . Microsoft Telnet no tiene ningún medio para enviar comandos desde un archivo por lotes o una línea de comandos.
Esto es viejo, pero alguien más puede tropezar con él como yo lo hice. Cuando te conectas a DataCast, estás hablando con un demonio que puede acceder a la base de datos. Se pretendía que un cliente escribiera algún código para acceder a la base de datos y almacenar los resultados en algún lugar. Simplemente sucede que telnet funciona para acceder a los datos manualmente. netcat también debería funcionar. ssh, obviamente, no lo hará.
Tal vez algo como esto?
¿Crear un lote para conectarse a telnet y ejecutar un script para emitir comandos? source
Archivo por lotes (llamado Script.bat):
:: Open a Telnet window
start telnet.exe 192.168.1.1
:: Run the script
cscript SendKeys.vbs
Archivo de comando (llamado 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 " "