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 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 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 iciquand 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".
Code : Sélectionner tout - Visualiser dans une fenêtre à part for /f "tokens=*" %%a in ('powershell "(gi '%FILEPATH%').versioninfo.Fileversion"') do set VERS=%%a
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
Partager