Laden Sie mehrere Dateien von einem FTP mittels VBScript
Ich bin überhaupt kein Experte in VB-Scripting, aber da es eine Anforderung bei einem meiner Projekte für den Augenblick bin ich versucht zu schreiben, ein VBScript, dass alle Dateien aus einem angegebenen FTP-Ordner.
Ich, um eine einzelne angegebene Datei, aber ich kann nicht scheinen, um alle Dateien in einem Ordner. Hier ist das Skript, das ich versuche zu verwenden:
Dim objOutStream
Const OpenAsDefault = -2
Const FailIfNotExist = 0
Const ForReading = 1
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objOutStream = objFSO.OpenTextFile("C:\temp\temp\empty.txt", ForWriting, True, TristateFalse)
With objOutStream
.WriteLine "USER myuser" ' USERNAME
.WriteLine "mypass" ' Password
.WriteLine "binary"
.WriteLine "prompt n"
.WriteLine "lcd /foldertocopyfrom" ' FOLDER I'm changing into
.WriteLine "mget *" ' Get all files with today's date in it
.WriteLine "bye"
.Close
End With
Set oFTPScriptShell = CreateObject("WScript.Shell")
oFTPScriptShell.Run "%comspec% /c FTP -n -s:" & "C:\temp\temp\empty.txt" & " " & "ftp.location.com", 0, True
Es nicht geben mir eine Fehlermeldung oder irgendwas, es ist im Grunde nichts tut (und ja, ich bin sicher, es gibt Dateien in der /foldertocopy aus :-))
Irgendwelche Ideen? Etwas, offensichtlich bin ich vermisst?
Dank!
- Ihre .Führen Sie nicht geben Sie den vollständigen spec-Datei von Ihrem ftp-command-Datei.
- In der Tat, ich habe vergessen, um Sie hier hinzufügen, dies ist aber nicht das Problem verursachen...
- lcd - change local working directory; cd - change remote working directory. Haben Sie versucht, die Befehle interaktiv?
- ja, das seltsame ist, dass wenn ich versuche meine Befehle in Windows Powershell, und ich Tue die cd Importieren heißt es "Befehl Erfolgreich abgeschlossen", aber wenn ich eine "dir" - Befehl, es nicht tun.... nur dort bleibt, besetzt werden...
- Korrektur, es gibt mir zuerst: 200 PORT-Befehl erfolgreich 150 Opening ASCII Mode data connection for /bin/ls, dann tut es nichts 🙁
- Klingt nach einem firewall-problem, es ist wahrscheinlich eine firewall oder ein NAT-router zwischen Ihrem client und dem FTP-server. Sie benötigen einen ftp-client, unterstützt "passive mode"; leider ist die Windows command-line FTP-client nicht unterstützt passiven Modus. Vielleicht können Sie Kostenlose Chilkat FTP-Komponente zum herunterladen von Dateien (chilkatsoft.com/chilkatftp.asp); Beispiel-Skripts: example-code.com/vbscript/ftp.asp .
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe versucht, Ihre Lösung, aber hatte ein paar kleine Korrekturen zu machen, damit es funktioniert:
prompt
da Umschalten, da der interaktive Modus ist bereits ausbye
zuquit
Hier ist das geänderte Skript
Schrieb ich eine Funktion, um dies für Sie tun. Sie können Lesen Sie und prüfen Sie den code hier ein:
http://www.naterice.com/articles/51
Unten finden Sie eine code zum download von ftp-Speicherort.
Hinweis z.B.
sSite : 192.168.0.1