Création d'un batch pour imprimer

guilich Messages postés 412 Statut Membre -  
 fred -
Bonjour,

Je suis un apprenti dans la programmation, mais pour mon travail je souhaiterai créer un .bat qui permettrait d'imprimer plusieurs fichiers excel (2). je voudrais dans un premier temps savoir si cela est réalisable, et si oui, si quelqu'un pourrait m'orienter vers une piste.

Merci d'avance

16 réponses

  1. Lefouerrant Messages postés 578 Statut Membre 116
     
    pour commencer, juste en dessous de la ligne
    echo Voulez-vous imprimer les fichiers suivants : (o=oui, q=quitter)
    

    la ligne correcte est :
    for %%A in (%fichier1% %fichier2%) do echo %%A
    

    ensuite, essaye :
    ensuite essaye CHOICE /C oq /N
    

    au lieu de
    CHOICE /C:oq /N ""
    


    voila
    2
  2. guilich Messages postés 412 Statut Membre 80
     
    Bonjour.

    Enfait, il y aurait deux fichiers excel, et deux fichiers word.

    ne serait-t-il pas possible de créer une liste. ou alors un batch qui en regrouperait plusieurs? du type

    executer 1.bat
    executer 2.bat
    executer 3.bat

    Merci beaucoup pour cette réponse rapide :)
    1
  3. guilich Messages postés 412 Statut Membre 80
     
    le gras n'apparait pas dans ton post.

    voici, selon moi ce qui correspond.

    @echo off

    rem Les noms des fichers à imprimer
    set fichier1=C:\couv.doc
    set fichier2=C:\couv5et.doc
    set fichier3=C:\tar5et.xls
    set fichier4=C:\tarif.xlsx

    rem Demande d'imprimer
    echo Voulez-vous imprimer les fichiers suivants : (o=oui, q=quitter)
    for %%A in (%fichier1% %fichier2% %fichier3% %fichier4%) do echo %%A%
    CHOICE /C:oq /N ""
    if errorlevel 2 goto quitter
    if errorlevel 1 goto imprimer

    rem Ne pas imprimer
    :quitter
    echo Vos documents n'ont pas été imprimé
    goto fin

    rem Imprimer
    :imprimer
    echo Impression en cours...
    for %%A in (%C:\couv.doc% %couv5et.doc% %tar5et.xls% %tarif.xlsx%) do print %%A%
    cls
    echo Impression terminée !

    :fin
    echo.
    echo Appuyez sur une touche pour terminer
    pause>nul

    Merci beaucoup pour ton aide qui m'est précieuse :)
    1
  4. Lefouerrant Messages postés 578 Statut Membre 116
     
    oui, c'est possible
    je peut te le faire si tu veux

    mais en batch, c'est vraiment inconfortable sauf si tu veux toujous imprimer les meme fichiers
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. fred
     
    moi c'est alfred kouame je veux maitrisè world exel pour ma formation ntic.je veux aussi des documents,conseils qui pourron m'aidé au bsuccè du bts.je vous r'emercie
    0
  7. guilich Messages postés 412 Statut Membre 80
     
    qu'en penses-tu ? c'est réalisable ça ?
    0
  8. Lefouerrant Messages postés 578 Statut Membre 116
     
    oui mais ce sont toujours les même fichiers ?

    je te donne déja le nom de la fonction pour imprimer :
    PRINT </D:périphérique>[[lecteur:][chemin]nom_de_fichier[...]]
    
       /D:périphérique   Spécifie un périphérique d'impression.
    

    Ce que je pourrais te faire aussi c'est un batch qui te propose une liste de fichiers et te demande si tu veux les imprimer un par un

    mais encore une fois, en batch c'est très inconfortable (question d'expérience) demande à un programmeur de te le faire en java ou en delphi
    0
  9. guilich Messages postés 412 Statut Membre 80
     
    non, il y a 4 fichiers différents, deux de type excel et deux de type word.
    0
  10. guilich Messages postés 412 Statut Membre 80
     
    ce serait quelque chose de ce type ?

    PRINT </C:périphérique>[[lecteur:C][chemin]C:\Documents and Settings\dmpib\Bureau\Clientèle\tarifs DMPIB\tarif et couverture\Couverture tarif 5ET.doc]

    \\Rnpaa85a6\AFICIO3030 Spécifie un périphérique d'impression.
    0
  11. Lefouerrant Messages postés 578 Statut Membre 116
     
    non, imaginons que ton ficher est C:\Documents and Settings\dmpib\Bureau\Clientèle\tarifs DMPIB\tarif et couverture\Couverture tarif 5ET.doc

    il faudrait mettre :
    print C:\Documents%20and%20Settings\dmpib\Bureau\Clientèle\tarifs%20DMPIB\tarif%20et%20couverture\Couverture tarif%205ET.doc
    


    et eventuellement ajouter le périphérique de sortie, dans ce cas voici le code :

    print /D:le périphérique D:\Documents%20and%20Settings\dmpib\Bureau\Clientèle\tarifs%20DMPIB\tarif%20et%20couverture\Couverture tarif%205ET.doc
    
    0
  12. Lefouerrant Messages postés 578 Statut Membre 116
     
    mais voici un code tout fait (de moi):

    @echo off
    
    rem Les noms des fichers à imprimer
    set fichier1=Ficher n°1
    set fichier2=Ficher n°2
    set fichier3=Ficher n°3
    set fichier4=Ficher n°4
    
    rem Demande d'imprimer
    echo Voulez-vous imprimer les fichiers suivants : (o=oui, q=quitter)
    for %%A in (%fichier1% %fichier2% %fichier3% %fichier4%) do echo %%A%
    CHOICE /C:oq /N ""
    if errorlevel 2 goto quitter
    if errorlevel 1 goto imprimer
    
    rem Ne pas imprimer
    :quitter
    echo Vos documents n'ont pas été imprimé
    goto fin
    
    rem Imprimer
    :imprimer
    echo Impression en cours...
    for %%A in (%fichier1% %fichier2% %fichier3% %fichier4%) do print %%A%
    cls
    echo Impression terminée !
    
    :fin
    echo.
    echo Appuyez sur une touche pour terminer
    pause>nul
    


    ce code crée les variables dans lesquelles sont stockées les noms de fichiers (voir les parties en gras) et les affiches en demandant si il faut les imprimer (taper o pour oui, q pour quitter).

    il faut bien sur modifier le texte en gras et (important) remplacer les espaces avec des %20
    0
  13. Lefouerrant Messages postés 578 Statut Membre 116
     
    non ce n'est pas ça, tu t'es trompé, lors de l'impression tu as mis :
    for %%A in (%C:\couv.doc% %couv5et.doc% %tar5et.xls% %tarif.xlsx%) do print %%A%
    

    or c'est
    for %%A in (%fichier1% %fichier2% %fichier3% %fichier4%) do print %%A%
    


    ensuite, il ne faut pas mettre
    for %%A in (%fichier1% %fichier2% %fichier3% %fichier4%) do print %%A%
    

    mais bien
    for %%A in (%fichier1% %fichier2% %fichier3% %fichier4%) do print %%A
    


    pour la boucle for, il ne faut pas rajouter de % à la fin du nom de variable et bien en mettre deux avant

    sinon c'est correct.

    bonne continuation
    0
  14. alfred
     
    slt je veux ecrir un algorithme qui demande d'entrée le prix unitaire d'un produit et la quantité acheté et qui affiche le montant a payer .faire en language structuré.merci d'avance
    0
  15. Lefouerrant Messages postés 578 Statut Membre 116
     
    pour commencer met un message à part sur le forum ensuite niveau algorithme je suis pas fort
    0
  16. guilich Messages postés 412 Statut Membre 80
     
    Bonjour,

    merci encore pour ta réponse qui m'est d'une aide vraiment précieuse.

    je pars sur l'idée d'une impression à deux fichiers plutôt, parce que ce ne sera pas pratique autrement.

    @echo off
    
    rem Les noms des fichers à imprimer
    set fichier1=C:\couv.doc
    set fichier2=C:\couv5et.doc
    
    rem Demande d'imprimer
    echo Voulez-vous imprimer les fichiers suivants : (o=oui, q=quitter)
    for %%A in (%fichier1% %fichier2%) do print %%A%
    CHOICE /C:oq /N ""
    if errorlevel 2 goto quitter
    if errorlevel 1 goto imprimer
    
    rem Ne pas imprimer
    :quitter
    echo Vos documents n'ont pas été imprimé
    goto fin
    
    rem Imprimer
    :imprimer
    echo Impression en cours...
    for %%A in (%C:\couv.doc% %couv5et.doc%) do print %%A
    cls
    echo Impression terminée !
    
    :fin
    echo.
    echo Appuyez sur une touche pour terminer
    pause>nul


    voilà le code, cependant, cela me fait une boucle "voulez-vous imprimer les fichiers suivants ?" qui ne s'arrête pas :s
    0
    1. fred
       
      slt tu parle de quel genr de bacht .stp revien sur la list des questions tu vera alfred repon a cette question si peux mercie d'avance
      0
  17. guilich Messages postés 412 Statut Membre 80
     
    as-tu une idée du probleme ?

    merci
    0