¿Cómo pasar estos comandos a un .bat?

Necesito escribir estos comandos dentro de un archivo .bat

C:\Users\USUARIO>ftp -A ftp.opera.com
ftp> literal stat
"AQUI SALE MI iP"
ftp> quit
C:\Users\USUARIO>

con ese codigo no hay problema en cmd, pero quiero que guardemi ip en un archivo de texto, lo intenté, pero por desgracia solo ejecuta la primera linea de comando "ftp -A ftp.opera.com" y me pide que escriba a mano el "literal stat" y yo quiero que el archivo .bat ejecute las tres lineas por si solo y que guarde el resultado en un txt.

Lo intente con el metodo tradidional y mas simple pero no funciona, solo ejecuta la primera linea:

ftp -A ftp.opera.com
literal stat > ipPu.txt
Quit

espero me puedan ayudar y muchas gracias de antemando! :D

1 respuesta

Respuesta
2

No te acabo de entender pero creo que el siguiente bat te ayudará (creo que debe figurar, más o menos así, en algún hilo de esta página pero no lo he encontrado):

@echo off
 > C:\Temp\ftp.txt ECHO anonymous
>> C:\Temp\ftp.txt ECHO.
>> C:\Temp\ftp.txt ECHO literal stat
>> C:\Temp\ftp.txt ECHO quit
ftp -i -s:"C:\Temp\ftp.txt" ftp.opera.com>C:\Temp\Ippub.log

Este bat genera un archivo, de nombre FTP.TXT, en la carpeta C:\TEMP (obviamente puede cambiarse el destino). El contenido de este archivo sería:

Anonymous
Literal stat
Quit

Una vez generado lo utiliza para conectarse a FTP. OPERA.COM y deja los mensajes originados en esa conexión en el archivo IPPUB.LOG de la carpeta C:\TEMP. Lo he probado en mi entorno y esto es lo que me ha salido:

Conectado a n18-02-02-v05.opera.com.
220 Welcome to Opera Software FTP Service
Usuario (n18-02-02-v05.opera.com:(none)): 
331 Please specify the password.
230 Login successful.
ftp> literal stat
211-FTP server status:
     Connected to XXX. XXX. XXX. XXX
     Logged in as ftp
     TYPE: ASCII
     No session bandwidth limit
     Session timeout in seconds is 300
     Control connection is plain text
     Data connections will be plain text
     At session startup, client count was 43
 vsFTPd 3.0.2 - secure, fast, stable
211 End of status
ftp> quit
221 Goodbye.

Si tienes alguna duda me la cuentas y vemos si te la puedo resolver.

Ya encontré el hilo al que me refería:

Deseo crear un batch que actualice/sustituya la IP

En aquella época no sabía utilizar la ventanita de SNIPPET (icono <> de la barra de herramientas de la página) por lo que los distintos intentos de creación del BAT aparecen en el texto, lo que lo hace un poco largo y farragoso.

He estado probando la opción "-A" del FTP y el bat del ejemplo podría quedar así:

@echo off
>  C:\Temp\ftp.txt ECHO literal stat
>> C:\Temp\ftp.txt ECHO quit
ftp -i -A -s:"C:\Temp\ftp.txt" ftp.opera.com>C:\Temp\Ippub.log

Revisando con más cuidado tu consulta creo que ya la he entendido y espero que el bat siguiente cumpla tus requisitos. Deja el archivo DirIP.txt la IP de tu equipo:

@echo off
>  C:\Temp\ftp.txt ECHO literal stat
>> C:\Temp\ftp.txt ECHO quit
for /f "tokens=3" %%a in ('ftp -A -s:"C:\Temp\ftp.txt" ftp.opera.com ^| find "Connected"') DO echo %%a>C:\Temp\DirIP.txt

aaaaa muchas gracias, el cogiogo funciona perfecto :D y si efectivamente, el ultimo código que me pasaste es exactamente lo que necesitaba ¡GRACIAS!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas