6
votes

FTP Obtenez et supprimez plusieurs fichiers

Je dois obtenir et supprimer plusieurs fichiers via FTP afin que j'ai écrit ce script:

ouvrir ftp.myftpserver.org utilisateur passe dossier de CD LCD E: \ localdir mget * mdel * au revoir

Ceci fonctionne mais n'est pas sûr car le dossier est alimenté à partir d'autres sources et que l'étape mdel * peut supprimer des fichiers téléchargés dans le quinmé.

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.

est-ce possible?

ftp

0 commentaires

4 Réponses :


0
votes

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.

Vous pouvez ensuite implémenter un algorithum comme: xxx

é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.


1 commentaires

Merci, mais je n'ai aucune possibilité de lancer un programme, je peux utiliser au mieux la ligne de commande DOS.



0
votes

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. xxx

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).

http://www.cuting.net/answers/programming/batch-ftp-script-list-rename-get-Delete/25728.html < / p>


0 commentaires

4
votes

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> xxx pré>

deuxième étape pour télécharger et supprimer les fichiers ci-dessus strong> p>

mobilefiles.bat p>

    E:
    cd E:\localdir
    ftp -i -s:E:\localdir\getfilelist.bat
    E:\localdir\movefiles.bat


0 commentaires

1
votes

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 mget le système distant ajoute d'autres fichiers. Ainsi, un mdelete pourrait supprimer des fichiers non transmissés.

Mon approche n'utilisait rien d'autre que les commandes FTP. Nous allons ici: xxx

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 mget . 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.

Une fois le téléchargement terminé, je supprime tous les fichiers du directeur de transfert et supprimer le DIR lui-même.


1 commentaires

Smart mais pas sûr à 100%