
Ich muss ein Batch-Skript zum Kopieren von Dateien vom PC auf den FTP-Server erstellen. Nach dem Kopieren alle Dateien aus der Quelle löschen. Und im Zielverzeichnis alle vorhandenen Dateien überschreiben.
Ich habe viele Lösungen gefunden, bin mir aber nicht sicher, welche für mich die beste ist. Zum Beispiel XCOPY
oder ROBOCOPY
oder klassische Methode mit Befehlen wie ftp
, cd
, copy
, mget
, ...
ROBOCOPY
scheint die beste Option zu sein, aber ich glaube, FTP wird nicht richtig unterstützt. XCOPY
Ist eine ältere Methode, ...
Schließlich handelt es sich um eine regulär geplante Aufgabe …
Vielen Dank für Ihre Ratschläge.
Antwort1
robocopy
und xcopy
arbeiten Sie nur mit lokalen Dateien.
Mit ftp
können Sie den Upload durchführen und anschließend die Quelldateien mit einem lokalen del
Befehl löschen.
ftp -s:upload.txt
del *.*
Es ist jedoch schwierig, dies so umzusetzen, dass nur Dateien gelöscht werden, die wirklich erfolgreich hochgeladen wurden. Die obige Batchdatei löscht alle Dateien, unabhängig davon, ob der Upload einiger davon fehlgeschlagen ist oder ob einige davon zwischen und erstellt ftp
wurden del
.
Die meisten FTP-Befehlszeilen-Clients von Drittanbietern können dies jedoch problemlos tun. Zum Beispiel mitWinSCP FTP-Clientkönnen Sie einfach die folgende Batchdatei verwenden (mitput
Befehlmit dem -delete
Schalter):
winscp.com /ini=nul /log=upload.log /command ^
"open ftp://username:[email protected]/" ^
"put -delete C:\local\source\path\* /remote/target/path/" ^
"exit"
Bezüglich der Terminplanung: SieheWinSCP-Anleitung zum Planen von Übertragungen zum FTP-Server.
(Ich bin der Autor von WinSCP)