Ich versuche, eine einfache Batch-Datei (n) zu erstellen, auf die ein Benutzer klicken kann. Der Benutzer wird aufgefordert, ein Anfangsdatum und ein Enddatum (Format yyyymmdd
) einzugeben und die Dateien mit einem übereinstimmenden Dateinamen zu übertragen.FTP-Dateien mit benutzerdefiniertem Zeitbereich mit Windows-Batch-Zeile?
Die Dateinamen haben das Format yyyymmdd.3P.site.name_address.csv
. Also, wenn der Benutzer 20160101
und 20160103
eingegeben hat, dann würde es ftp 3 Dateien (die 3, die mit 20160101
, 20160102
und 20160103
starten).
Da das Datumsformat im Dateinamen INT freundlich ist, dachte ich daran, die ersten 8 Zeichen aus den Dateinamen zu analysieren und alle zwischen den Benutzereingaben zu laden.
Mein Problem ist, dass ich nicht weiß, wie man die 2 Benutzereingaben speichert und mit den herausgefilterten Dateinamen vergleicht. Hier ist mein Code derzeit:
test.bat
ftp -i -s:test.ftp
test.ftp
open ftp.somesite.com
username
password
lcd %UserProfile%\Desktop\ftptest
cd folderwithfiles
get 20160518.3P.site.name_address.csv
bye
Ich habe eine alternative Lösung mit WinSCP hinzugefügt. –
Danke für die tollen Tipps. Ich möchte mich nicht auf Datei-Zeitstempel verlassen und versuche, dies nur auf Batch-Dateien zu beschränken, damit die Benutzer keinen FTP-Client installieren müssen. Wenn Sie Ihre obige Lösung verwenden, funktioniert etwas nicht. Es ist erfolgreich, die list.txt mit allen Dateinamen zu erstellen, aber die get.txt enthält keine Dateinamen, also vermute ich, dass es ein Problem mit der Schleife gibt. Ich versuche es herauszufinden ... – Crescent
Wie sieht die 'list.txt' aus? –