Je dois télécharger un fichier qui est placé dans un dossier appelé abc_20140221_123456 dans server1 sur ftp dans mon répertoire local. Le problème est que les derniers six caractères du nom de dossier ne sont pas corrigés. Par exemple, aujourd'hui, le dossier peut être appelé abc_20140221_123456 et demain, il peut s'appeler abc_20140221_234567. J'ai des problèmes en écrivant un manuscrit de traitement par lots d'automation pour faire la même chose.Téléchargement de fichier à partir du serveur via FTP
est ici le script, je travaille sur:
@echo off
setlocal
set buildDate=%DATE:~0,10%
set dateStr=%buildDate:~6,4%%buildDate:~3,2%%buildDate:~0,2%
set folderName=abc_%dateStr%_
echo open server1>>file.tmp
echo username>>file.tmp
echo password>>file.tmp
echo prompt>> file.tmp
echo binary>>file.tmp
echo lcd E:\>>file.tmp
:: Not sure how to cd to abc_20140221_* from here
echo get filename.txt>>file.tmp
echo y>>file.tmp
echo disconnect>>file.tmp
echo bye>>file.tmp
ftp -i -s:file.tmp
pause
Je sais que je peux boucle à travers les répertoires en utilisant pour comme ceci:
for /d %%d in (' %path%/*%folderName%* ') do (
echo get filename.txt>>file.tmp
echo y>>file.tmp
)
Mais « pour » ne fonctionne pas à l'intérieur ftp> .
Toute aide est fortement appréciée. Merci.
Est-ce que 'cd abc_20140221_ *' fonctionne sur votre serveur FTP? La manière habituelle sera d'ouvrir une connexion et de consigner une commande 'dir' dans un fichier texte, puis d'analyser le fichier texte pour le nom du dossier - et de créer un script à la volée pour ouvrir une nouvelle connexion pour le téléchargement. – foxidrive
J'ai juste essayé de le faire, mais cd abc_20140221_ * ne fonctionne pas dans l'invite ftp. Je comprends ce que vous essayez de dire. Mais existe-t-il un moyen plus simple de le faire? –
Non, car FTP ne permet pas de changer de dossier en utilisant des jokers comme vous l'avez essayé. Vous pourriez être en mesure d'utiliser un outil FTP tiers qui a des fonctionnalités supplémentaires telles que celle-ci, mais Windows FTP est limité. – foxidrive