J'ai un script BAT qui me permet d'exécuter un script d'open office ainsi qu'une série de commandes.

Mon soucis est que ces bougres de $$$$$ de programmeur d'open office mettent le numéro de version dans leur chemin de répertoire. Donc je me retrouve dans l'obligation de mettre ce chemin en variable...

J'exécute donc la commande :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
C:/xampp/htdocs/BLUE_MEDI_CONF/Module_OPENOFFICE/export.bat --PDF C:/xampp/htdocs/dev_V6_5/upload/upld_ged/SOURCE/1/dev_V6_5_OOo_1586.odt 2>&1 "C:\Program Files\OpenOffice.org 2.0\"
qui exécute ce fichier bat :
Code : 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
::@echo off

SET CHEMIN=%3
::Set nomDeLaVariable=% nomDeLaVariable:a=e%
:: Chemin vers l'executable Python
SET PYTHON=%CHEMIN%\program\python.bat

:: Chemin vers le programme Python pour l'export OOo 
SET PATH_TO_CONF=C:\xampp\htdocs\BLUE_MEDI_CONF\Module_OPENOFFICE

:: Serveur web
SET HOST=localhost

:: Port d'ecoute Open Office
SET PORT=2002

:: Chaine de connexion
SET CNN_STRING=socket,host=%HOST%,port=%PORT%

:: Commande
"%PYTHON%" "%PATH_TO_CONF%\export.py" %1 --connection-string "%CNN_STRING%" %2 

@echo on
mon soucis est qu'a l'exécution, j'obtiens :
Z:\>C:/xampp/htdocs/BLUE_MEDI_CONF/Module_OPENOFFICE/export.bat --PDF C:/xampp/h
tdocs/dev_V6_5/upload/upld_ged/SOURCE/1/dev_V6_5_OOo_1586.odt 2>&1 "C:\Program F
iles\OpenOffice.org 2.0"

Z:\>SET CHEMIN="C:\Program Files\OpenOffice.org 2.0"

Z:\>SET PYTHON="C:\Program Files\OpenOffice.org 2.0"\program\python.bat

Z:\>SET PATH_TO_CONF=C:\xampp\htdocs\BLUE_MEDI_CONF\Module_OPENOFFICE

Z:\>SET HOST=localhost

Z:\>SET PORT=2002

Z:\>SET CNN_STRING=socket,host=localhost,port=2002

Z:\>""C:\Program Files\OpenOffice.org 2.0"\program\python.bat" "C:\xampp\htdocs\
BLUE_MEDI_CONF\Module_OPENOFFICE\export.py" --PDF --connection-string "socket,ho
st=localhost,port=2002" C:/xampp/htdocs/dev_V6_5/upload/upld_ged/SOURCE/1/dev_V6
_5_OOo_1586.odt
'""C:\Program' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.

Z:\>
et l'apostrophe est un peu gênante en plein milieu du chemin d'exécution.

J'ai envisagé plusieurs solutions :
-> supprimer le dernier caractère, ce qui pourrait se faire si je connaissais la taille de la chaîne de caractère à chaque fois.
-> remplacer les " par des espaces, sauf que comme ce sont des caractères spéciaux, je l'ai dans le baba...

Auriez vous une petite idée ?

Merci

(PS : comme vous pouvez peut être vous en douter, je suis complètement dépassé par ces lignes de commandes archaïques... je sais bien me démerder en shell nux, mais en doc, à par l'exécution de commande ... je patine