Bonjour à tous ! J'aurais besoin de votre aide sur un petit programme informatique, j'en ai besoin pour le boulot et je ne m'y connait quasiment pas en programmation...
Mon problème est le suivant : j'ai un dossier départ qui contient des sous-dossiers, qui eux-mêmes contiennent des fichiers. J'aimerai un script qui permet de créer dans le dossier arrivée les mêmes sous-dossiers présents dans le dossier départ, puis de convertir automatiquement en .pdf tous les fichiers présents dans le dossier départ, et enfin les placer dans le dossier arrivée et dans leurs sous-dossiers respectifs (le schéma en dessous est sûrement un peu plus clair). J'utilise pour cela PDF Creator 3.4 .
J'ai fait pas mal de recherches sur divers forums, et je suis tombé sur un programme qui fonctionne presque (je le mets en dessous). En fait quand je le lance, il détecte bien le premier fichier .ods, crée bien dans le dossier arrivée le sous-dossier a, mais s'arrête ici. Je pense que la ligne de code qui bloque est :
PDFCreator.exe/PrintFile="%~4"
Est-ce que c'est un problème de configuration de PDF Creator ? J'ai bien essayé de bidouiller au maximum ses options, mais ça n'a pas l'air de changer grand-chose...
Si une âme charitable qui s'y connait en batch pourrait m'aider, j'en serais bien aise !
Code Batch : 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 @echo off Setlocal EnableExtensions EnableDelayedExpansion set pathTestDepart=D:\dossier depart set pathTemporaire=%TEMP% set PATH=%PATH%;"C:\Program Files\PDFCreator" cd /d %pathTestDepart% set destination=D:\dossier arrivee FOR /F "tokens=*" %%A in ('dir /b /s /a-d "*.ods"') do ( set file=%%~dpA echo. & echo Traitement du fichier : %%~nxA set newFilePath=!file:%pathTestDepart%=%destination%! call :traitement "%pathTemporaire%" "%%~nA.pdf" "!newFilePath!" "%%~A" ) echo. & pause exit /B :traitement if not exist "%~3" (mkdir "%~3") PDFCreator.exe/PrintFile="%~4" :check if not exist "%~1\%~2" (goto :check) ping -n 1 localhost >nul move /Y "%~1\%~2" "%~3%~2" || goto :check goto :eof rem
Merci d'avance !
Edit : je me suis en tête d'utiliser du batch, mais peut-être qu'un autre langage serait plus simple et plus approprié ?
Partager