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é ?