[BATCH] - Variable dans boucle "FOR" imbriquée
Résolu/Ferméyaphilde Messages postés 35 Date d'inscription lundi 9 janvier 2017 Statut Membre Dernière intervention 25 octobre 2022 - 25 oct. 2022 à 11:17
- [BATCH] - Variable dans boucle "FOR" imbriquée
- Fichier batch - Guide
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Copytrans heic for windows - Télécharger - Visionnage & Diaporama
- Download instagram for pc - Télécharger - Divers Communication
- Saveaspdf.exe for office 2007 - Télécharger - Bureautique
2 réponses
Modifié le 21 oct. 2022 à 19:14
Bonjour yaphilde,
Comment ça va depuis le temps ?
Dans le premier code tu imbriques un FOR dans un FOR mais tu utilises la même variable %%D pour les deux, ça ne peut pas marcher correctement. De plus il faut retarder la variable Usager, ce qui donne :
echo off chcp 65001 >nul setlocal enabledelayedexpansion cls cd /d %~dp001-TelechargementSource for /d %%A in (*) do ( echo Concerne l'usager : %%~nxA echo. set "Usager=%%~dpnxA" cd !Usager! for /d %%D in (*) do ( echo 00 - NOM de la matiere : %%~nxD echo - 01 Fusion des fichiers pdf contenu dans la matiere echo - 02 Enregistrement du fichier fusionner dans dossier 02-DossierPdfFusionner echo - 03 je nomme mon nouveau pdf en %%~nxD.pdf echo -------------------------------------------------------- echo. pdftk "!Usager!\%%~nxD\*.pdf" output %%~nxD.pdf ) cd.. ) cd..
Je n'ai pas eu le temps de tester donc n'hésite pas à me remonter les problèmes s'il y en a.
25 oct. 2022 à 11:17
Coucou Barnabe,
Mille mercis comme d'hab tu es redoudable d'efficacité ????! Et toujours aussi pédagogue!
Tout fonctionne niquel. J'ai juste rajouter (%~dp0) pour positionner mon executable de pdftk (logiciel libre https://www.pdflabs.com/tools/pdftk-server/)
Je mets mon code final pour partager à la communauté:
Objectifif : Batch fusion PDF
Outil utilisé PDFTK (pdftk.exe + libiconv2.dll) placé au même niveau que mon batch
Batch de fusion PDF:
echo off chcp 65001 >nul setlocal enabledelayedexpansion cls cd /d %~dp001-TelechargementSource for /d %%A in (*) do ( echo Concerne l'usager : %%~nxA echo. set "Usager=%%~dpnxA" cd !Usager! for /d %%D in (*) do ( echo 00 - NOM de la matiere : %%~nxD echo - 01 Fusion des fichiers pdf contenu dans la matiere echo - 02 je nomme mon nouveau pdf en %%~nxD.pdf et l'enregistre dans le dossier de l'élève echo - 03 Je supprime le dossier qui contenait mes sources echo -------------------------------------------------------- echo. %~dp0pdftk.exe "!Usager!\%%~nxD\*.pdf" output %%~nxD.pdf rd /S /Q "!Usager!\%%~nxD" ) cd.. ) cd..
Très bonne journée à tous et encore Merci Barnabe pour ta réactivité!