IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Script de recherche et de conversion en PDF


Sujet :

Scripts/Batch

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 17
    Points : 7
    Points
    7
    Par défaut Script de recherche et de conversion en PDF
    Bonjour,

    Je cherche à développer un script permettant la recherche d'un mot donné dans des fichiers d'un répertoire et convertir les fichiers trouvés en PDF en utilisant PDF CREATOR (PDFCreator.exe /PF"D:\test.txt").

    Je vous prie de m'aider afin d'élaborer ce script.

  2. #2
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Salut,

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @echo off
    set $string=test
     
    for /f "delims=" %%a in ('dir /b/a-d *.txt') do (
      echo Traitement de : %%a
      find /i "%$string%" %%a >nul && call:convert %%a || echo String Non Pr‚sent)
     
    exit/b
     
    :convert
    PDFCreator.exe /PF "%1"

    Mets la valeur à rechercher dans la variable $string et met la commande exact pour la conversion
    après :convert. %1 represente le fichier à convertir.

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    J'ai testé le script envoyé et ca a marché!!

    Je vous remercie

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Bonjour,


    Je tente d'améliorer le script communiqué dans le post précédent comme suit:

    Dans le répertoire, je ne prend en considération dans ma recherche que les fichiers qui ont une date de création > = à la date actuelle (DATE et HEURE).

    Je tente d'interoduire la commande "dir /TC" dans:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @echo off
    set $string=CHQB
     
    for /f "delims=" %%a in ('dir /b/a-d *.*') do (
    	echo Traitement de : %%a
    	find /i "%$string%" %%a >nul && call:convert %%a || echo String Non Pr‚sent)
     
    exit/b
     
    :convert
    cd C:\Program Files\PDFCreator
    PDFCreator.exe /PF"c:\test_pdf\%1" 
    cd\
    cd c:\test_pdf
    Merci d'avance pour votre aide.

  5. #5
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Salut Tiffany,

    Dans le répertoire, je ne prend en considération dans ma recherche que les fichiers qui ont une date de création > = à la date actuelle (DATE et HEURE).
    Tu ne va pas avoir beaucoup de fichier dont la date est supérieur à la date actuelle

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    En fait, ma problématique est la suivante:

    J'ai un répertoire qui contient des fichiers pouvant avoir le mot CHQB.
    Ceux qui ont un CHQB, je les transforme en PDF et les envoi par mail.

    Ce répertoire est appelé à s’enrichir au fur et à mesure dans la journée. Mon script doit scruté chaque minute le contenu de ce répertoire, et je voudrai éviter d'avoir des redondances. C'est pour cela, que je voudrai chercher que dans les fichier récemment crée dans ce répertoire.

    Je sais pas si j'ai bien expliqué mon cas.

    Merci encore pour votre aide.

  7. #7
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Est-ce que tu crée le pdf dans le même répertoire où se trouve les fichier ?
    Est-ce que ce répertoire est vidé chaque jour ?

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Non, je pense les mettre dans un autre répertoire.
    Le répertoire n'est malheureusement pas vidé. C'est un cumul. C'est pour cela, que je souhaiterai cibler que les fichiers récents.

  9. #9
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    On peut donc effectivement tester que les fichiers qui ont la date du jour :



    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    @echo off
    set $string=CHQB
     
    setlocals enabledelayedexpansion
    for /f "delims=" %%a in ('dir /b/a-d *.* ^| find "%$String%"') do (
            set "$DateF=%%~ta"
            set "$DateF=!$DateF:~0,10!"
            if !$DateF!==%date% (
    	  echo Traitement de : %%a
    	  call:convert %%a
             )
    )
     
    exit/b
     
    :convert
    cd C:\Program Files\PDFCreator
    PDFCreator.exe /PF"c:\test_pdf\%1" 
    cd\
    cd c:\test_pdf

    PS : Je n'ai pas testé le code.

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  10. #10
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Super. Merci pour le code.

    Je viens de le tester et un peu retoucher et çà a donné ce qui suit :

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    @echo off
    set $string=CHQB
     
    setlocal enabledelayedexpansion
    for /f "delims=" %%a in ('dir /b/a-d *.*') do (
            set "$DateF=%%~ta"
            set "$DateF=!$DateF:~0,10!"
            if !$DateF!==%date% (
    			echo Traitement de : %%a
    			find /i "%$string%" %%a >nul && call:convert %%a || echo String Non Pr‚sent)
            )
    )
     
    exit/b
     
    :convert
    cd C:\Program Files\PDFCreator
    PDFCreator.exe /PF"c:\test_pdf\%1" 
    cd\
    cd c:\test_pdf

    Il me permet de ne prendre en considération que les fichiers du jour.


    Par contre, je cherche toujours à le perfectionner comme suit:

    - Je sauvegarde la date, y compris l'heure, du dernier fichier crée "date_old"
    - Quand je relance mon batch, il ne prend en considération que les fichiers crées à partir de "date_old"


    Le fichier bat est censé se lancer chaque 5 minutes et faire un controle sur le répertoire si y'a eu de nouveaux fichiers recus.

  11. #11
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Il serait judicieux de renommer les fichiers traités en Fichier.ok.txt (par exemple) ou si tu es en NTFS metrre
    un metadata dans les fichiers déjà traités (pour ne pas toucher à la structure visible du fichier).

    Sinon tu auras toujours le risque de traiter 2 fois le même fichier (en travaillant sur la date et l'heure).

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  12. #12
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Merci pour vos réponses. J'ai finalement opté pour la solution suivante:
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
     
    @echo off
    set $string=CHQB
     
    setlocal enabledelayedexpansion
     
    for /f "delims=" %%a in ('dir /b/a-d *.*') do (
    		set "$DateF=%%~ta"     	
            set "$DateF=!$DateF:~0,10!"		
     
    		if !$DateF!==%date% (
    			echo Traitement de : %%a
    			find /i "%$string%" %%a >nul && call:convert %%a || echo String Non Pr‚sent
    		)
     
    )
     
    exit/b
     
     
    :convert
    IF NOT exist "C:\test_pdf_pdf\%1"  (
    	copy C:\test_pdf\%1 C:\test_pdf_pdf\%1
     
    	cd C:\Program Files\PDFCreator
    	PDFCreator.exe /PF"c:\test_pdf_pdf\%1" 
    	rem reste envoi par mail
    )
    cd\
    cd c:\test_pdf

    - Je recherche les fichiers contenant le mot "CHQB" et qui date d'aujourdh'ui.
    - Par la suite, Je les déplace dans un autre répertoire s'ils n'existent pas et je lance la commande PDF.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. recherche composant de conversion de .doc, .xls ->pdf
    Par coucoucmoi dans le forum Composants VCL
    Réponses: 1
    Dernier message: 07/06/2010, 20h42
  2. [Recherche] script conversion de pdf en swf
    Par silver74 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 12/08/2008, 16h50
  3. [FPDF] Recherche chaine caractères dans fichier pdf
    Par licorne dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 28/10/2005, 11h55
  4. Script de recherche de type mime
    Par bluecurve dans le forum Modules
    Réponses: 1
    Dernier message: 31/08/2005, 17h36
  5. Réponses: 9
    Dernier message: 04/03/2005, 13h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo