Unsere Kunden müssen bestimmte Dateien über FTP von ihrem Netzwerk in unser Netzwerk übertragen. Die Übertragung muss automatisch aufgerufen werden, wenn sich eine der angegebenen Dateien ändert. Für diesen Zweck ist RoboCopy perfekt. RoboCopy unterstützt jedoch keine Übertragung an FTP-Adressen. Daher möchte ich unsere FTP-Site einem Laufwerksbuchstaben auf dem Client-Server zuordnen. Ich fand, dass FtpUse perfekt ist, um einen FTP einem Laufwerksbuchstaben zuzuordnen . Die Zuordnung funktioniert wie erwartet und ich kann den Inhalt der FTP-Site im Windows Explorer sehen. Ich kann auch Daten auf das zugeordnete FTP-Laufwerk schreiben.
Angenommen, ich habe die FTP-Site mit diesem Befehl dem Laufwerk Q auf meinem lokalen Computer zugeordnet:
ftpuse Q: [ftp address] [password] /USER:[username]
Versuchen Sie, RoboCopy mit diesem Befehl einzurichten:
robocopy [source dir] Q:\ *.xls *.xlsx /COPY:DAT /LOG+:"[LogDir]\FtpCopyLog.txt" /V /NP /MON:1 /MOT:1 /R:10 /W:30
Wenn RoboCopy ausgeführt wird, schlägt dies mit der folgenden Fehlermeldung fehl:
FEHLER 87 (0x00000057) Kopieren der Datei [Quellverzeichnis] \ test2.xlsm Der Parameter ist falsch
Ich habe versucht, das Laufwerk zuzuordnen und den RoboCopy-Befehl unter dem gleichen Benutzerkonto auszuführen, aber es scheint das Problem nicht zu lösen.
Hoffe jemand kann helfen.
Jede Hilfe wäre sehr dankbar.
Antworten:
Versuchen Sie, WinSCP im Spiegelmodus zu verwenden. WinSCP kann hier heruntergeladen werden:
http://winscp.net/eng/download.php
Mit WinSCP müssen Sie kein Laufwerk zuordnen, es stellt lediglich eine direkte Verbindung zu FTP her und erledigt die Arbeit für Sie.
Hier ist ein kleines BAT-Skript, das dies ROBOCOPY ähnelt.
WATCH OUT: Ich habe die Option -delete hinzugefügt, mit der entfernte Dateien entfernt werden, die nicht mehr mit dem lokalen Ordner übereinstimmen. Doppelte Anführungszeichen sind erforderlich, da der lokale Pfad Leerzeichen enthält.
quelle
Wenn die Kopie ausgeführt wird, haben Sie die Berechtigung, Dateien zu erstellen, diese jedoch nicht zu überschreiben. Wie groß sind die Dateien? Nach dem, was ich bei jeder Bearbeitung einer Datei erfahre, wird die Datei erneut vollständig kopiert und Sie überschreiben die alte Datei mit der neuen Version. Es gibt keine Möglichkeit zu bewerten, was sich in der Datei geändert hat, und nur die neuen Daten anzuhängen. Da Sie nicht versuchen, Daten anzuhängen, und die von Ihnen verwendeten Tools es Ihnen nicht ermöglichen, die Datei zu überschreiben, können Sie theoretisch eine Art Zwischenskript schreiben, das veraltete Dateien löscht, wenn sie unmittelbar vor dem Kopieren der neuen Datei erkannt werden. Das klingt nach einer klobigen Lösung, aber dann klingt das Ganze auch nach einem klobigen Prozess. Persönlich würde ich neu bewerten, was das Ziel hier und so ist, aber ich versuche, mich nur auf die Beantwortung der Frage zu beschränken. Viel Glück!
quelle
Da Sie bereits Windows verwenden, warum nicht Power Shell verwenden, um dies zu tun? Sie können nur neue Dateien angeben und die Aufgabe mit dem Windows Task Scheduler planen, alle mit integrierten Windows-Tools. Keine Notwendigkeit für eingebaute Funktionalität zu bezahlen. Ich gehe davon aus, dass es sich nicht um eine sichere FTP-Verbindung handelt, die Sie verwenden. Durch schnelles Scripting erhalten Sie eine sehr flexible, kostengünstige Lösung. Ich habe mehrere Power Shell-Skripte, die FTP-Dateien basierend auf bestimmten Kriterien ziehen und pushen.
quelle