> Tous les forums > Forum Windows 7
 Batch de recherche et copie de multiple fichier.Sujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
makulafo
  Posté le 26/09/2014 @ 00:57 
Aller en bas de la page 
Petit astucien

Bonsoir,

je souhaite rechercher une liste de 500 fichiers qui se trouve dans plusieurs sous-repertoires d'un mega dossier de plus de 900000.

puis je dois copier ces fichiers vers un autre dossier

pour faire ces copies multiples, j'utilise file finder ,mais je ne peux pas effectuer cette recherche + copie sur plus d'une dizaine de fichiers en meme temps en raison de la limitation de la zone de saisie des nom de fichiers

Merci de me donner un coup de main



Modifié par makulafo le 26/09/2014 07:31
Publicité
Constance
 Posté le 26/09/2014 à 08:37 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Salut .o/

Comment identifies-tu les fichiers à copier ? As-tu une liste précise, qu'on puisse envisager d'exploiter avec une boucle du genre "for /f %%a in (liste.txt) do ..." ?

makulafo
 Posté le 26/09/2014 à 09:25 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour constance,

je confirme que j'ai la liste explicite de mes 543 fichiers de façon explicites qui puisse être exploité via ta boucle.

Constance
 Posté le 26/09/2014 à 12:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

OK.

Est-il possible que certains noms de fichiers existent en double dans le "méga dossier" (dans différents sous-dossiers par exemple) ? Si oui, comment le programme doit-il réagir ?

makulafo
 Posté le 26/09/2014 à 21:53 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

il n'y'a pas de doublons possible, car le resultat provient d'une requête de base de donnée qui s'en assure.

Mais pour prevoir ce cas : ne rien faire si le fichier a deja été copié et passer au suivant

Constance
 Posté le 27/09/2014 à 18:09 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Re .o/

Voici donc un script, à enregistrer en .bat ou .cmd, qui fait à peu de choses près ce que tu as demandé : http://pastebin.fr/36950

Il faudra bien sûr changer les valeurs des 4 variables définies au début :
- srclist est la liste des fichiers, comportant un nom de fichier par ligne
- targetdir est le dossier vers lequel la copie doit être effectuée
- srcdir est le "méga-dossier" dans lequel il faut chercher
- log est un fichier journal des opérations (optionnel, si tu n'en veux pas, assigne-lui la valeur NUL)

Contrairement à ce que tu as demandé, en cas de doublon, le script écrase sans confirmation... mais puisque tu as dit qu'il ne devrait pas y avoir de doublon ^^

Constance
 Posté le 06/10/2014 à 13:16 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

:up:

Des nouvelles ? Tu as eu l'occasion de tester ?

makulafo
 Posté le 10/10/2014 à 23:16 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir constance,

J'ai testé, mais ça ne marche que lorsque mon dossier de destination et ma source sont sur le le même disque local

lorsque le répertoire source et la destination ne sont pas sur le même disque, ça ne marche pas.

Dans la réalité, mes répertoires sont sur des disques réseaux différents.

j'ai testé le chemin réseau complet dans la destination : \\192.165.10..... mais ça ne marche pas

j'ai testé le chemin via le lecteur réseau I:\projets ...... mais ça ne marche pas.

Regarde le fichier LOG, c'est assez clair :http://textup.fr/107133hr

mais je ne comprends pas pourquoi, est ce les commandes . en existe t'il de spécifiques pour le réseau ?

faudrait t-il que mon batch dispose de droits ? pourtant je l’exécute depuis mon poste avec ma session admin.

Regarde le log et dis moi ce que tu en penses.

@+

Constance
 Posté le 11/10/2014 à 00:58 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Re :}

Hmm c'est curieux, a priori dès lors que tu as les droits requis pour lire les fichiers à la source et écrire à destination, ça devrait fonctionner, que ce soient les mêmes lecteurs ou non, et même avec des chemins UNC (c'est-à-dire du type "\\serveur\partage\sous-dossier" )… je n'ai pas fait ce test-là mais pour autant que je sache, ça ne devrait pas avoir d'influence.
Dans le listing des fichiers à rechercher, il y a bien uniquement des noms de fichiers, sans chemin ni lettre de lecteur, ni guillemet ?

Publicité
makulafo
 Posté le 11/10/2014 à 12:21 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Je te confirme que dans le fichier TXT , les fichiers sont sans référence à un chemin et il n'y a ni guillemet ni autre caractère spécial.

Pour me dépanner j'ai crée tous les fichiers et dossiers de ton batch dans un dossier temporaires sur le disque d’où je recherche les fichiers.

Puis je copie manuellement les fichiers du dossier "destination " vers la véritable destination , c'est à dire sur un autre disque réseau.

mais je n'ai pas renoncé à faire fonctionner le batch comme il faut. Donc toute aide sera la bienvenue.

@+

Constance
 Posté le 14/10/2014 à 13:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Re ^^

OK, j'ai fait des tests avec une version beaucoup plus "bavarde" et j'ai ainsi trouvé les causes du problème.

En fait, j'avais fait deux erreurs bêtes :
1 - j'ai oublié dans la commande dir ligne 20 d'ajouter un /s pour qu'il parcoure tous les niveaux de sous-dossiers, et non pas seulement le premier niveau.
2 - la variable %%d inclut déjà %srcdir%, donc toutes les occurrences de "%srcdir%\%%d" doivent être remplacées par "%%d"

Voici donc une version corrigée : http://pastebin.fr/37151

Edit : j'ai réfléchi encore un peu plus au problème durant mon trajet pour rentrer du boulot, et j'ai apporté quelques améliorations au script, voir ici : http://pastebin.fr/37166
- on ne parcourt plus qu'une fois l'arborescence, ce qui devrait accélérer l'opération assez nettement s'il y a de nombreux sous-dossiers, en particulier depuis un partage réseau
- je fais désormais appel à une fonction aussi bien pour rechercher dans la racine du dossier ou dans ses sous-dossiers, ce qui simplifie le code.

Comme d'habitude, il faudra adapter les variables sur les premières lignes.



Modifié par Constance le 16/10/2014 15:24
makulafo
 Posté le 25/10/2014 à 22:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

bonsoir constance,

Je suis allé au bout de l'utilisation du batch.

- Je confirme que le batch s’exécute en réseau

- Je confirme que le second batch est plus puissant que le précédent.

En réalité, la limite vient d'une part de la masse de données à scruter et du niveau d'imbrication des sous-répertoires.

du coup je me suis adapté . j'ai reorganisé les data de maniere à disposer de repertoires moins complexe avec maximum 2 sous répertoires, mais plus de criteres d'archivages donc plus de repertoires racine.

je dispose en moyenne de 25000 fichiers dans chaque arborescence (une trentaine)

avec cette organisation je n'ai plus de probleme pour effectuer des recherches avec ton batch.

Merci pour tout

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
120,45 €SSD Corsair Force MP600 Core 1 To (NMVe M.2 Gen4, 4950/1950 Mo/s) à 120,45 € livré
Valable jusqu'au 22 Octobre

Amazon Allemagne fait une promotion sur le SSD Corsair Force MP600 1 To (NMVe M.2 Gen4) qui passe à 115,86 € (avec la TVA ajustée). Comptez 4,59 € pour la livraison en France soit un total de 120,45 € livré alors qu'on le trouve ailleurs à partir de 160 €. Ce SSD utilise une interface M.2 NVMe PCIe Gen4 x 4 pour une connexion simple et des performances exceptionnelles : jusqu’à 4950 Mo/s en lecture séquentielle et jusqu’à 1950 Mo/s en écriture séquentielle. Le SSD est doté de la technologie 3D QLC NAND haute densité offrant une endurance d’écriture durable et assorti d’une garantie de 5 ans. Il est accompagné d'un dissipateur thermique.

Vous pouvez utiliser votre compte Amazon France sur Amazon Allemagne et il n'y a pas de douane. Si vous êtes perdu en allemand, vous pouvez traduire le site en anglais.


> Voir l'offre
32,48 €Casque de jeu SteelSeries Arctis 1 à 32,48 € livré
Valable jusqu'au 24 Octobre

Amazon Espagne fait une promotion sur le très bon casque de jeu SteelSeries Arctis 1 qui passe à 26,75 € (avec la TVA ajustée). comptez 5,48 € pour la livraison en France soit un total de 32,48 € livré au lieu de 50 € ailleurs. Ce casque dispose d'un micro détachable, d'oreillettes pliables à plat et est adapté à toutes les plateformes de jeu, y compris PC, PS5, PS4, Xbox et Switch via une connexion filaire universelle 3,5 mm.

Vous pouvez utiliser votre compte Amazon FR sur Amazon ES et il n'y a pas de douane.


> Voir l'offre
132,84 €Ecouteurs intra sans-fil Sony WF-1000XM3 à réduction de bruit active à 132,84 € livrés
Valable jusqu'au 22 Octobre

Amazon Italie fait une belle promotion sur les écouteurs intra-auriculaire sans-fil Sony WF-1000XM3 avec réduction de bruit active qui passent à 127,86 €. Comptez 4,98 € pour la livraison en France soit un total de alors 132,84 € livrés qu'on les trouve ailleurs à plus de 170 €. Performants, confortables et modernes, les écouteurs True Wireless Sony WF-1000XM3 s'inviteront naturellement dans votre quotidien. Livrés avec un boîtier de charge/transport, ils bénéficieront d'une autonomie maximale de 24 heures tout en assurant une écoute de haute qualité grâce à la puce Bluetooth 5.0. Gérez facilement votre lecture avec les commandes tactiles sur l'oreillette, prenez des appels dans les meilleures conditions avec les deux microphones intégrés et discutez facilement sans avoir besoin de retirer vos écouteurs grâce à la fonction Quick Attention.


> Voir l'offre

Sujets relatifs
Problème lecture et copie de fichier (La visioneuse windows ne peut affi..
Interdire la copie de fichier pour un groupe d'utilisateur
Copie de fichier accès refusé
fichier batch avec espaces (pas trouver la solutions sur les autres sujets)
AIde pour realiser Un batch de deplacement conditionnel de fichier
Copie fichier film zzzz.mkv vers clef usb
Aide à l'ecriture d'un fichier batch ou script de deplacement de fichier.
ou est passée ma copie de fichier
Recherche grand fichier !!!!!!!!
utilitaire recherche fichier
Plus de sujets relatifs à Batch de recherche et copie de multiple fichier.
 > Tous les forums > Forum Windows 7