Comparar versiones de un software desde un bat
Nuevamente por acá, necesitando resolver un dilema.
Ejecutando el siguiente script logro extraer la versión de un programa o ejecutable, en este caso "Teamviewer"
wmic datafile where "name='C:\\Program Files (x86)\\Teamviewer\\TeamViewer.exe'" get version|find "1"
Se me había ocurrido que a través de un bucle, extraer la versión sin puntos:
@echo off FOR /f %%i in ('wmic datafile where "name='C:\\Program Files (x86)\\Teamviewer\\TeamViewer.exe'" get version^|find "1"') DO set ver=%%i&echo version con puntos: %%i set ver=%ver:.=% echo version sin puntos: %ver% FOR /f "tokens=1,2,3,* delims=." %%i in ('wmic datafile where "name='C:\\Program Files (x86)\\Teamviewer\\TeamViewer.exe'" get version^|find "1"') DO set ver=%%i%%j%%k%%l&echo version sin puntos segunda opcion: %ver%
A continuación planteo el problema:
La versión actual al día de la fecha es: 15.13.60.
Por otro lado la versión que deseo comparar tiene la 15.2.2756
Al ejecutar el bat me da como resultado en ambos lo siguiente
151360 para la versión nueva y..
1522756 para la versión vieja...
Al querer utilizarlas para compararlas, la versión vieja termina siendo mayor, entonces viene mi consulta... ¿de qué manera puedo extraer y comparar las versiones de tanto el exe instalado como el ejecutable en si, para de alguna manera poder decidir, si es una versión anterior goto:updateTeam... Por dar un ej.