[Résolu] Ressortir une chaine de mots d'un fichier

Une difficulté, une précision posez vos questions

Modérateur : WIN32-[GG]

Répondre
lbn
Batcheur débutant
Messages : 15
Enregistré le : 25 mars 2008 06:26

[Résolu] Ressortir une chaine de mots d'un fichier

Message par lbn »

Bonjour,

Et tout d'abord félicitation pour ce merveilleux petit forum d'entraide.
J'ai plusieurs questions, et je les poserai distinctement sur différents posts pour une meilleur clareté de résolution.

Après avoir passé ma nuit a me pondre des fichiers test, je ne suis pas encore parvenu à extraire et traiter un simple mot présent dans un fichier.
Je cherche à ouvrir un fichier type c:\plop\paf.log, à y lire le mot ou la chaine de mot présente (genre un chemin de fichier), et à l'employer dans mon batch principal. Genre, " cd <la chaine de mot du fichier en question> "

J'imagine que c'est très simple mais mes essais ne sont pas concluent ATM :)


Merci merci ! ^^
Il y a 10 types de personne dans le monde.
- Ceux qui comprennent le binaire
- Et il y a les autres
Avatar du membre
flox
Administrateur du site
Messages : 158
Enregistré le : 18 janv. 2008 22:05

Re: Ressortir une chaine de mots d'un fichier

Message par flox »

Bonjour,

Regarde ce post il donne un exemple pour une recherche de chaine de caractères dans plusieurs fichiers et plusieurs dossiers.

Si sa ne répond pas a tes attentes, fait en moi part


Bon crourage
lbn
Batcheur débutant
Messages : 15
Enregistré le : 25 mars 2008 06:26

Re: Ressortir une chaine de mots d'un fichier

Message par lbn »

Coucou Flox et mercie de ta rapidité de réponse,

A vrai dire, je n'ai pas poster sans avoir parcouru tous ces posts. Je vais m'y re atteler au cas ou j'aurais loupé quelque chose. Mais il me semble que ce que je cherche à faire est bcp plus simple. Je cherche juste à ouvrir un fichier txt, a en recupérer la première ligne, et à l'inclure dans la synthaxe de mon batch principal. Vu la manière dont j'en parle, ca semble simple mais a priori suffisament dur pour me bloquer hihihi.

merci merci :)
Il y a 10 types de personne dans le monde.
- Ceux qui comprennent le binaire
- Et il y a les autres
lbn
Batcheur débutant
Messages : 15
Enregistré le : 25 mars 2008 06:26

Re: Ressortir une chaine de mots d'un fichier

Message par lbn »

Bon bon bon 5 heures après j'ai avancé mais je bloque sur un truc.

Après étude du post que tu cites, j'ai essayé de remettre ca a ma sauce, mais qq chose m'échappe.

voila mon code, sachant que la variable dest=c: et la variable destb=D:

Code : Tout sélectionner

rem j'essaye d'extraire les repertoires de 'D:' dans mon repertoire 'zback' de mon disque C: (et cela fonctionne)
dir %destb%\ /ad | find "REP" | find  "." /V > %dest%\zback\04.doc.log

rem Je reprends a la lettre la syntaxe que tu as exposé dans un autre poste pour filtrer le repertoire appelé "Mes document" 
rem et je retourne écrire le résultat dans le repertoire de C:\zback
for /f "tokens=4 delims= " %%a in (%dest%\zback\04.doc.log) do (find %destb%\%%a\* "Mes documents" /C >> %dest%\zback\05.result.log)
 
Je ne vois pas ou est le prob, car le fichier 04.doc.log est correctement rempli des noms des repertoires y compris le "Mes documents"
Pourtant, lors de l'éxécution, j'obtiens un message d'erreur sur 5 repertoires (le premier pour le nommer est : Accès refusé - D:\APPART\00 PROLOGUE)
et les 4 suivants suivent le même début de chemin. A noter que ce sont des repertoires d'archives photos de mon disque D.
Pour finir le fichier result a des infos dedans mais incomprehensible

Code : Tout sélectionner

---------- D:\APPART\A TABLE !!!.BAK: 0
---------- D:\APPART\A TABLE !!!.PXC: 0
---------- D:\APPART\A TABLE.B01: 0
---------- D:\APPART\A TABLE.B02: 0
---------- D:\APPART\A TABLE.B03: 0
---------- D:\APPART\A TABLE.B04: 0
---------- D:\APPART\A TABLE.B05: 0
---------- D:\APPART\A TABLE.B06: 0
---------- D:\APPART\A TABLE.B07: 0
---------- D:\APPART\A TABLE.B08: 0
---------- D:\APPART\A TABLE.BAK: 0
---------- D:\APPART\A TABLE.PSH: 0
 
Qu'ai je loupé ???

Merci de ton aide ^^
Il y a 10 types de personne dans le monde.
- Ceux qui comprennent le binaire
- Et il y a les autres
Avatar du membre
flox
Administrateur du site
Messages : 158
Enregistré le : 18 janv. 2008 22:05

Re: Ressortir une chaine de mots d'un fichier

Message par flox »

Bonjour,
je pense que le problème vient de ton arborescence si j'ai bien compris "D:\APPART\00 PROLOGUE" est un sous répertoire de "APPART", si tu regarde ton fichier "%dest%\zback\04.doc.log" tu ne devrais pas le trouver.

Ce problème peut etre résolu en remplaçant la ligne suivante:

Code : Tout sélectionner

dir %destb%\ /ad | find "REP" | find  "." /V > %dest%\zback\04.doc.log
par

Code : Tout sélectionner

dir %destb%\ /ad /s | find "REP" | find  "." /V > %dest%\zback\04.doc.log
Sinon avec la commande suivante, tu précise le répertoire "Mes documents" comme terme à rechercher dans tes fichiers D:\APPART\A TABLE.B01. Je ne pense pas que cela soit ce que tu veut faire.

Code : Tout sélectionner

for /f "tokens=4 delims= " %%a in (%dest%\zback\04.doc.log) do (find %destb%\%%a\* "Mes documents" /C >> %dest%\zback\05.result.log)
je ne suis pas encore parvenu à extraire et traiter un simple mot présent dans un fichier
Quel est ce mot présent dans tes fichiers ?



Si sa ne résous pas ton problème post l'arborescence de tes répertoires ainsi que le contenu de tes fichiers temporaire.

Merci
lbn
Batcheur débutant
Messages : 15
Enregistré le : 25 mars 2008 06:26

Re: Ressortir une chaine de mots d'un fichier

Message par lbn »

Merci pour ta réponse.

Je ne comprends pas malgré tout différents points.
Pourquoi ai je besoin de rajouter /s au dir, puisque dans mon exemple le repertoire "Mes documents" est à la racine de D: (soit la variable destb) ?
Cela devrait fonctionner directement dans chercher les repertoire recursifs non ?

Voila le dir réel de mon D:

Code : Tout sélectionner

 Le volume dans le lecteur D s'appelle WinData
 Le num‚ro de s‚rie du volume est 1867-BA71

 R‚pertoire de d:\

30/12/2007  22:20    <REP>          appart
25/03/2008  10:33    <REP>          Mes documents
25/03/2008  02:13    <REP>          tmprar
23/03/2008  21:27    <REP>          _Serveur
               4 fichier(s)    6ÿ223ÿ806ÿ806 octets
              11 R‚p(s)  99ÿ356ÿ946ÿ432 octets libres
 
Sachant que je cherche dans mon ensemble de code a chercher ou se trouve positionné le repertoire 'Mes docuements' sur mon drive D: quelque soit sa position hierarchique dans l'arborecence des repertoires.

Voici le contenu du fichier 04.doc.log, le listing y est coherent.

Code : Tout sélectionner

30/12/2007  22:20    <REP>          appart
25/03/2008  10:33    <REP>          Mes documents
29/12/2007  02:52    <REP>          RECYCLER
29/12/2007  02:52    <REP>          System Volume Information
25/03/2008  02:13    <REP>          tmprar
23/03/2008  21:27    <REP>          _Serveur
 
je pense que le problème vient de ton arborescence si j'ai bien compris "D:\APPART\00 PROLOGUE" est un sous répertoire de "APPART", si tu regarde ton fichier "%dest%\zback\04.doc.log" tu ne devrais pas le trouver.
Effectivement, et tant mieux, car le repertoire que je veux cibler est le repertoire racine "Mes documents". Je ne vois pas pourquoi il m'affiche avec la ligne FOR... des accès refusés sur 5 repertoires de APPART, alors que je ne cherche absolument pas a traiter ce repertoire.

Je ne sais pas si c'est très clair ce que je dis :)

Merci en tt cas.
Il y a 10 types de personne dans le monde.
- Ceux qui comprennent le binaire
- Et il y a les autres
lbn
Batcheur débutant
Messages : 15
Enregistré le : 25 mars 2008 06:26

Re: Ressortir une chaine de mots d'un fichier

Message par lbn »

Bon bon bon ^^

Presque 24h de recherche via google et je n'ai toujours pas trouvé ma solution.

Pour faire appel à vous tous et résumer en simple mon probleme, je cherche à reperer un nom de repertoire composé d'un espace (en l'occurence le repertoire 'mes documents'), en laissant l'utilisateur indiquer le lecteur racine après une requete, et en envoyant dans une variable la path complet du repertoir 'Mes documents' après avoir chercher sur le lecteur ou il se trouve.

Merci à tous, surtout si vous avez la solution...car je commence à perdre patience hihihih

lbn
Il y a 10 types de personne dans le monde.
- Ceux qui comprennent le binaire
- Et il y a les autres
lbn
Batcheur débutant
Messages : 15
Enregistré le : 25 mars 2008 06:26

Re: Ressortir une chaine de mots d'un fichier

Message par lbn »

J'ai trouvé une solution à mon problème, en trouvant la clé ou est stokée dans la BDR le chemin du répertoire mes documents !

Mon problème initial est donc reglé.

Merci à tous !
Il y a 10 types de personne dans le monde.
- Ceux qui comprennent le binaire
- Et il y a les autres
Répondre