Script MS-DOS

adrenaline28 -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Je ne connais pas grand chose en MS-DOS et je cherche à faire un script qui permet de récupérer dans X fichier différent contenu dans un dossier, une partie txt de chaque fichier.
J'aimerais en faite récupérer l'adresse mail de chaque mail que je reçois et la stocker dans un txt.
J'ai déjà quelques pistes

find "AuthorEmail dt" mail.msg > step1.txt

Cette commande me permet de récupérer cette ligne
---------- MAIL.MSG
<o:_AuthorEmail dt:dt=3D"string">***@***</o:_Aut=

Ensuite j'aimerais uniquement récupérer ***@*** le problème c'est qu'il n'y a pas vraiment de séparateur qui me le permette donc j'ai pensé à réaliser 2 FOR.

for /F "tokens=2 delims=>" %i IN (step1.txt) DO set myvar=%i

Pour récupérer ***@***</o:_Aut= (la j'ai un soucis quand je fais echo %myvar% il me met chemin d'accès introuvable car à mon avis il interprète </o:_Aut....

Après j'avais pensais a une commande dans se style :

for /F "tokens=1 delims=<" %i IN (%myvar%) DO set myvar2=%i qui théoriquement devrait me donner uniquement ***@***

Et après l'écrire à la suite des autres adresses dans un fichier echo %myvar% >> contacts.txt

Je n'ai pas trop d'idée pour exécuter automatiquement se script sur tous les fichiers *.msg du dossier courant.

Merci d'avance aux connaisseurs MS-DOS



3 réponses

  1. Utilisateur anonyme
     
    Bonjour,

    for %%f in (*.msg) do ............. %%f

    juste une piste vite fait :)
    0
  2. jeannets Messages postés 28381 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 6 601
     
    bonjour,

    Il y a ça aussi https://fr.emailextractorpro.com/

    http://www.aspirateur-email.com/

    Sinon, je crois que tu peux faire: find "AuthorEmail dt" mail.msg | sort /+32 > step1.txt

    ceci va sortir un fichier texte trié à partir du 32ème caractère... en plus de la recherche primaire.
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    C:> for /f "tokens=2 delims=<>" %a in ('find "AuthorEmail dt" ^< mail.msg') do @echo %a
    ***@***
    0