Création d'un batch pour imprimer [Fermé]

Signaler
Messages postés
378
Date d'inscription
jeudi 31 juillet 2008
Statut
Membre
Dernière intervention
16 octobre 2017
-
 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

Messages postés
567
Date d'inscription
mercredi 19 décembre 2007
Statut
Membre
Dernière intervention
1 octobre 2009
114
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
378
Date d'inscription
jeudi 31 juillet 2008
Statut
Membre
Dernière intervention
16 octobre 2017
72
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 :)
Messages postés
378
Date d'inscription
jeudi 31 juillet 2008
Statut
Membre
Dernière intervention
16 octobre 2017
72
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 :)
Messages postés
567
Date d'inscription
mercredi 19 décembre 2007
Statut
Membre
Dernière intervention
1 octobre 2009
114
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
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
Messages postés
378
Date d'inscription
jeudi 31 juillet 2008
Statut
Membre
Dernière intervention
16 octobre 2017
72
qu'en penses-tu ? c'est réalisable ça ?
Messages postés
567
Date d'inscription
mercredi 19 décembre 2007
Statut
Membre
Dernière intervention
1 octobre 2009
114
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
Messages postés
378
Date d'inscription
jeudi 31 juillet 2008
Statut
Membre
Dernière intervention
16 octobre 2017
72
non, il y a 4 fichiers différents, deux de type excel et deux de type word.
Messages postés
378
Date d'inscription
jeudi 31 juillet 2008
Statut
Membre
Dernière intervention
16 octobre 2017
72
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.
Messages postés
567
Date d'inscription
mercredi 19 décembre 2007
Statut
Membre
Dernière intervention
1 octobre 2009
114
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
Messages postés
567
Date d'inscription
mercredi 19 décembre 2007
Statut
Membre
Dernière intervention
1 octobre 2009
114
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
Messages postés
567
Date d'inscription
mercredi 19 décembre 2007
Statut
Membre
Dernière intervention
1 octobre 2009
114
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
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
Messages postés
567
Date d'inscription
mercredi 19 décembre 2007
Statut
Membre
Dernière intervention
1 octobre 2009
114
pour commencer met un message à part sur le forum ensuite niveau algorithme je suis pas fort
Messages postés
378
Date d'inscription
jeudi 31 juillet 2008
Statut
Membre
Dernière intervention
16 octobre 2017
72
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
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
Messages postés
378
Date d'inscription
jeudi 31 juillet 2008
Statut
Membre
Dernière intervention
16 octobre 2017
72
as-tu une idée du probleme ?

merci