Je dois obtenir et supprimer plusieurs fichiers via FTP afin que j'ai écrit ce script: p>
Ceci fonctionne mais n'est pas sûr car le dossier Je suppose qu'une solution pourrait déplacer les fichiers à distance dans un dossier différent, construire un filélateur au début du processus, mais je ne sais pas comment le faire. P>
est-ce possible? P> ouvrir ftp.myftpserver.org
utilisateur
passe
dossier de CD
LCD E: \ localdir
mget *
mdel *
au revoir code> p>
code> est alimenté à partir d'autres sources et que l'étape
mdel * code> peut supprimer des fichiers téléchargés dans le quinmé. p>
4 Réponses :
Je ne sais pas si vous pouvez le faire avec un script de client FTP.
Peut être préférable de le faire en tant que programme ou script à l'aide d'une langue de votre choix avec une bibliothèque FTP afin d'avoir beaucoup plus de contrôle des opérations FTP. par exemple. Perl avec net :: FTP, Java etc. p>
Vous pouvez ensuite implémenter un algorithum comme: p> également besoin de vous assurer que vous n'essayez pas Pour obtenir un fichier dans le processus d'écriture, en fonction de l'O / S, cela pourrait être géré pour vous avec des verrous de fichier, mais vous devez vous assurer que les fichiers sont écrits sur la Dir distante dans un processus à deux étapes. Tout d'abord, un répertoire ou un nom de fichier temporay qui ne correspond pas au modèle de fichier que vous vérifiez, puis renommé ou déplacé dans l'emplacement correct et le nom que vous détecterez. P> p>
Merci, mais je n'ai aucune possibilité de lancer un programme, je peux utiliser au mieux la ligne de commande DOS.
OK, alors je pense que vous pouvez implémenter l'algorithum que j'ai décrit comme un script de lots à l'aide de deux appels et de scripts FTP séparés. Le premier à répertorier les fichiers à transférer de la Dir distante, la seconde pour obtenir et supprimer un seul fichier de la liste.
Le fichier get de fichier devrait être créé de manière dynamique sur chaque itération de la boucle pour obtenir le fichier suivant. p> Ce site a un exemple de similière (note script comme Montré à DOS ne fonctionne pas, les commentaires donnent des détails sur les corrections nécessaires). P> http://www.cuting.net/answers/programming/batch-ftp-script-list-rename-get-Delete/25728.html < / p> p>
FTR J'ai suivi la belle poininte et j'ai réussi à faire avec succès quelque chose de travail, peut-être pas élégant mais fonctionne:
première étape pour obtenir la liste des fichiers: strong> p> GetFilelist .bat p> mobilefiles.bat p>
E:
cd E:\localdir
ftp -i -s:E:\localdir\getfilelist.bat
E:\localdir\movefiles.bat
J'ai eu un problème similaire. Il semble que beaucoup de gens luttent ici; -)
Je dois télécharger plusieurs fichiers et les supprimer après les télécharger avec succès sur le serveur distant pour éviter le double traitement. Il y a une très petite chance que tout en effectuant un Mon approche n'utilisait rien d'autre que les commandes FTP. Nous allons ici: p> en un coup d'œil, je déplace tous les fichiers sur un répertoire supplémentaire sur le serveur distant. Devrait être très rapide car cela se produit localement. Une fois que les fichiers sont décalés sur le Dir de transfert, j'effectue le vrai Une fois le téléchargement terminé, je supprime tous les fichiers du directeur de transfert et supprimer le DIR lui-même. P> p> mget code> le système distant ajoute d'autres fichiers. Ainsi, un
mdelete code> pourrait supprimer des fichiers non transmissés. P>
mget code>. Cela pourrait prendre plus de temps et que d'autres fichiers peuvent être téléchargés en toute sécurité sur le directeur principal du serveur distant. P>
Smart mais pas sûr à 100%