Skript pro extrahování informací z ftp serveru
Problém
Zajímalo by mě, jestli byste mi mohli pomoci s následujícími prosím.
Chtěl bych vytvořit skript (v libovolném jazyce, podle toho, co je nejjednodušší), který se při spuštění bude přihlašovat k existujícímu ftp serveru pomocí obecného účtu a hesla, poté seznam souborů ve specifické složce, která začíná řetězcem "abc" ". Názvy souborů spolu s datem jejich vytvoření pak budou extrahovány do souboru csv (nebo podobného). Může mi někdo pomoci, prosím?
Řešení
Zde je skript:
ftp.Hostname = "ftp.test.com"
ftp.Username = "Uživatel"
ftp.Password = "Předat"
'Výchozí režim přenosu dat je "Aktivní" na rozdíl od "Pasivního".
'Změňte ji na Pasivní nastavením vlastnosti Pasivní:
ftp.Passive = 1
'Po připojení vytvořte zabezpečený kanál AUTH SSL
'na standardním portu FTP 21.
ftp.AuthTls = 1
Vlastnost Ssl slouží k vytvoření implicitního spojení SSL
'na portu 990. Nenastavujte ho.
ftp.Ssl = 0
'Připojit a přihlásit se na FTP server.
connectStatus = ftp.Connect ()
Pokud (connectStatus 1) Potom
MsgBox ftp.LastErrorText
'WScript.Quit
Main = DTSTaskExecResult_Failure
Jiný
dirStatus = ftp.ChangeRemoteDir ("RMed")
Pokud (dirStatus 1) Potom
MsgBox ftp.LastErrorText
'WScript.Quit
Main = DTSTaskExecResult_Failure
Konec Pokud
'MsgBox ftp.getCurrentRemoteDir ()
'zadejte cestu a název souboru na lokálním počítači
localInvoiceFile = "C: Dokumenty a nastaveníNathanMy Documents2dRMedInvoice_RMed.txt"
localPatientFile = "C: Dokumenty a nastaveníNathanMy Documents2dRMedPatient_RMed.txt"
'zadejte cestu a název souboru na vzdáleném počítači
remoteInvoiceFile = "C: ClientsStratFile UploadsCustomer UploadsRMedInvoice_RMed.txt"
remotePatientFile = "C: ClientsStratFile UploadsCustomer UploadsRMedPatient_RMed.txt"
'MsgBox remoteInvoiceFile
'MsgBox remotePatientFile
'stáhnout soubory ze vzdáleného serveru
transferStatus = ftp.getFile (remoteInvoiceFile, localInvoiceFile)
pak (transferStatus 1)
MsgBox ftp.LastErrorText
Main = DTSTaskExecResult_Failure
jiný
Main = DTSTaskExecResult_Success
konec, pokud
transferStatus = ftp.GetFile (remotePatientFile, localPatientFile)
pak (transferStatus 1)
MsgBox ftp.LastErrorText
Main = DTSTaskExecResult_Failure
jiný
Main = DTSTaskExecResult_Success
konec, pokud
KONEC IF
ftp.Disconnect
Funkce End
Poznámka
Díky cb4nd17 za tento tip na fóru.