PDA

View Full Version : Get file in FTP


danyel175
02-08-2007, 15:16
Ciao a tutti.

Quesito:
Avrei la necessità di eseguire un download da uno spazio ftp in maniera quotidiana e automatica, il problema è che il file che devo andare a scaricare ha come formato la data del giorno prima più l'estensione, dato che sulla stessa cartella vengono mantenuti anche i file dei giorni precedenti, nella cartella di destinazione arriverebbero (facendo una mget *.estensione) tutti i file anche quelli non desiderati, condizione che aimè non può essere accettabile :( .
Esiste una maniera per andare ad intercettare un file del genere generando un batch?

Ciao e grazie a tutti

danyel175
02-08-2007, 17:25
nessuno?? :mc:

cionci
03-08-2007, 08:33
In teoria potresti recuperare i dati con un batch o con un file VBS sfruttando la data. Fammi un esempio del nome del file...

danyel175
03-08-2007, 09:58
Il file di oggi si chiama cosi:
20070802.zip come faccio a sfruttare la data se mi serve "quella di ieri?"

Considera che nella stessa cartella ci sono anche più giorni precedenti e a me interessa solo quello de giorno prima che poi è quello più recente.

Grazie

cionci
03-08-2007, 10:55
Ecco qua, questo lo devi infilare in un file con estensioen .vbs e si calcola il nome del file.

Dim d, s, nday, nmonth
d = DateAdd("d", -1, Now())

nday = Day(d)
If nday < 10 Then
nday = "0" & nday
End If

nmonth = Month(d)
If nmonth < 10 Then
nmonth = "0" & nmonth
End If

s = Year(d) & nmonth & nday & ".zip"

Dim oShell
Set oShell = WScript.CreateObject("WScript.shell")
oShell.run "getfile.bat " & s
Set oShell = Nothing

Il file batch ad esempio potrebbe essere qualcosa del genere, lo chiamo getfile.bat:

@echo off
rem Inserisco nome utente e password nel file di input, è importante che il primo comando abbia un solo >
echo nomeutente > ftpinput.txt
echo password >> ftpinput.txt
rem Inserisco i comandi per andare a recuperare il file
echo cd remotedir >> ftpinput.txt
echo get %1 >> ftpinput.txt
rem Inserisco il comando per chiudere il client ftp
echo quit >> ftpinput.txt
rem Eseguo il client ftp
ftp indirizzoserverftp < ftpinput.txt
rem Il tutto è terminato, inserisco una pausa per debug
pause

danyel175
03-08-2007, 14:06
Ok ci provo e ti faccio sapere, per il momento ti ringrazio molto!!!! :)

cionci
03-08-2007, 14:10
Ah ovviamente si poteva fare anche tutto con VBScript senza chiamare in causa il batch, ma non avevo voglia di andare a guardare come si scriveva sui file :stordita:

danyel175
03-08-2007, 16:23
Ok và benissimo così, l'ho provato e funziona tutto.

Grazie 1000 :ave: sei stato preziosissimissimo..... :D