2016-04-20 5 views
1

Ich bin auf der Suche nach Batch-Datei, die eine Textdatei mit FTP erhalten kann und für immer mit Verzögerung 10 Sekunden ausgeführt werden.Get Textdatei mit FTP alle 10 Sekunden

Dies ist mein Code:

:loop 

ftp -i -s:"%~f0"&GOTO:EOF 
open Server_IPADDRESS 
userName 
Password 
get test.txt 
close 

TIMEOUT 10 
goto loop 

Ich halte den Fehler bekommen

ftp> TIMEOUT 10 
Invalid command. 
ftp> goto loop 
Invalid command. 

Was ich will, ist die ftp und Rückkehr zum normalen cmd zu beenden, aber ich kann es nicht machen .

Antwort

2

Stellen Sie sicher, dass Sie verstehen, was die -s:"%~f0" tut.

Es teilt der ftp.exe die Batch-Datei selbst, als ob es wo ein FTP-Skript.

Wenn die ftp.exe die Batch-Datei ausgeführt wird, es:

  • gibt Ihnen zwei "Invalid Befehl" Fehler für die :loop und ftp.exe Linien.
  • läuft dem eigentlichen FTP-Skript
  • Ihnen zwei „Invalid Befehl“ Fehler für die TIMEOUT 10 und goto loop Befehle gibt.

Auf der anderen Seite, die Batch-Datei-Interpreter (die cmd.exe) sehen die GOTO:EOF, was es effektiv erzählt die Batch-Datei zu interpretieren zu stoppen. Daher werden die TIMEOUT 10 und goto loop nie ausgeführt.


Sie müssen:

  • Änderung der GOTO:EOF kurz vor dem TIMEOUT 10 Befehl zu springen;
  • erzählen die ftp.exe nach dem close mit bye Befehl zu stoppen, können Sie von diesem Satz von „Ungültiger Befehl“ Fehler zu ersparen.
:loop 

ftp -i -s:"%~f0"&GOTO:afterftp 
open Server_IPADDRESS 
userName 
Password 
get test.txt 
close 
bye 

:afterftp 
TIMEOUT 10 
goto loop 

Obwohl Weg robuster ist die FTP-Skript und Batch-Datei zu trennen:

FTP-Skript (ftp.txt):

open Server_IPADDRESS 
userName 
Password 
get test.txt 
close 

Batch-Datei:

:loop 

ftp -i -s:ftp.txt 

TIMEOUT 10 
goto loop 

Oder eine temporäre Datei für den FTP-Skript verwenden:

:loop 

echo open Server_IPADDRESS> ftp.txt 
echo userName>> ftp.txt 
echo Password>> ftp.txt 
echo get test.txt>> ftp.txt 
echo close>> ftp.txt 

ftp -i -s:ftp.txt 

del ftp.txt 

TIMEOUT 10 
goto loop 

(eigentlich keine Notwendigkeit, die ftp.txt in jeder Schleife neu erstellen)

Verwandte Themen