Probleme de chaine dans une variable
Bonjour,
Je fais un script pour extraire la version d'un programme installé, cela fonctionne très bien si le programme en question se trouve dans "programfiles" mais plante si c'est en programfiles (x86)
Mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| set FILENAME="vlc.exe"
set SOFT=VLC
call :INSTALL
set FILENAME="Firefox.exe"
set SOFT=Firefox
call :INSTALL
:INSTALL
set FILEPATH=
FOR /F "delims=" %%f in ('dir /S /B %FILENAME%') do set FILEPATH="%%f"
echo Chemin : %FILEPATH%
IF NOT '%FILEPATH%'=='' (echo Fichier Trouve : %FILEPATH%) else (
Fichier NON Trouve
GOTO :suite)
for /f "tokens=*" %%a in ('powershell "(gi '%FILEPATH%').versioninfo.Fileversion"') do set VERS=%%a
echo Version installee : %SOFT% %VERS%
:suite
pause
GOTO :eof |
L'erreur survient ici
Code:
for /f "tokens=*" %%a in ('powershell "(gi '%FILEPATH%').versioninfo.Fileversion"') do set VERS=%%a
quand le FILEPATH est "c:\programfiles (x86)\mozilla\firefox.exe" ce ne marche pas et fonctionne si le FILEPATH est "c:\programfiles\VideoLAN\VLC\vlc.exe".
Je sais aussi que cela fonctionne si le FILEPATH est "%ProgramFiles(x86)%...." ou "%ProgramFiles%...."
A ce stade je bloque, j'avais pensé à un remplacement de chaine mais j'ai pas reussi.
Quelle solution préconisez-vous ?
Merci à tous