Script para extrair informações de arquivos do servidor ftp

Questão

Pergunto-me se você poderia me ajudar com o seguinte, por favor.

Eu gostaria de construir um script (em qualquer idioma, o que for mais fácil) que quando executado, ele irá fazer logon em um servidor ftp existente usando uma conta genérica e senha, em seguida, liste os arquivos em uma pasta específica que começa com a seqüência "abc ". Os nomes dos arquivos, juntamente com a data de criação, devem ser extraídos em um arquivo csv (ou similar). Alguém pode me ajudar com isso, por favor?

Solução

Aqui está o script:

ftp.Hostname = "ftp.test.com"

ftp.Username = "Usuário"

ftp.Password = "Pass"

'O modo de transferência de dados padrão é "Ativo" em oposição a "Passivo".

'Altere para Passivo configurando a propriedade Passiva:

ftp.Passive = 1

'Estabelecer um canal seguro AUTH SSL após conexão

'na porta FTP padrão 21.

ftp.AuthTls = 1

'A propriedade Ssl é para estabelecer uma conexão SSL implícita

'na porta 990. Não o ajuste.

ftp.Ssl = 0

'Conecte e faça o login no servidor FTP.

connectStatus = ftp.Connect ()

Se (connectStatus 1) então

'MsgBox ftp.LastErrorText

'WScript.Quit

Principal = DTSTaskExecResult_Failure

Outro

dirStatus = ftp.ChangeRemoteDir ("RMed")

Se (dirStatus 1) Então

'MsgBox ftp.LastErrorText

'WScript.Quit

Principal = DTSTaskExecResult_Failure

Fim se

'MsgBox ftp.getCurrentRemoteDir ()

'especifica o caminho e o nome do arquivo na máquina local

localInvoiceFile = "C: Documents and SettingsNathanMy Documents2dRMedInvoice_RMed.txt"

localPatientFile = "C: Documents and SettingsNathanMy Documents2dRMedPatient_RMed.txt"

'especifica o caminho e o nome do arquivo na máquina remota

remoteInvoiceFile = "C: ClientsStratFile UploadsCustomer UploadsRMedInvoice_RMed.txt"

remotePatientFile = "C: ClientsStratFile UploadsEntrevistas do clienteRMedPatient_RMed.txt"

'MsgBox remoteInvoiceFile

'MsgBox remotePatientFile

'baixar os arquivos do servidor remoto

transferStatus = ftp.getFile (remoteInvoiceFile, localInvoiceFile)

se (transferStatus 1) então

'MsgBox ftp.LastErrorText

Principal = DTSTaskExecResult_Failure

outro

Principal = DTSTaskExecResult_Success

fim se

transferStatus = ftp.GetFile (remotePatientFile, localPatientFile)

se (transferStatus 1) então

'MsgBox ftp.LastErrorText

Principal = DTSTaskExecResult_Failure

outro

Principal = DTSTaskExecResult_Success

fim se

FIM SE

ftp.Disconnect

Função final

Nota

Obrigado ao cb4nd17 por essa dica no fórum.

Artigo Anterior Próximo Artigo

Principais Dicas