Comparar dos números que representan la versión de un software con varios puntos.
Quiero crear una función que compare/verifique si un número de versión es menor que otro. Los números son:
$version1 = 23.0.46.0
$version2 = 24.1.154.0
Cuando uso una simple condición if como la siguiente, no funciona porque me devuelve False:
IF(23.0.46.0 -lt 24.1.154.0){
Write-Host "True"
}
Else
{
Write-Host "False"
}
Tengo la idea de dividir el número de versión por los puntos en un arreglo. Luego, hacer un bucle para comparar las partes de cada versión hasta que una sea menor que la otra. En este caso, sería directamente en la primera iteración porque 23<24. Sin embargo, soy nuevo en PowerShell.
Gracias por tu ayuda.
davy.ai
Creando una función para comparar números de versión
Paso 1: Dividir los números de versión en arrays
Primero, necesitamos dividir los números de versión en arrays. Podemos usar el método
Split
para esto.Paso 2: Comparar cada elemento de los arrays
Luego, necesitamos recorrer cada elemento de los arrays y compararlos. Podemos usar un bucle
for
para esto.Esto recorrerá cada elemento de los arrays y los comparará. Si un número de versión es menor que el otro, mostrará un mensaje indicándolo y saldrá del bucle. Si un número de versión es mayor que el otro, mostrará un mensaje indicándolo y saldrá del bucle. Si las versiones son iguales, continuará con el siguiente elemento.
Ahora podemos encapsular todo esto dentro de una función:
Ahora podemos llamar a esta función con los números de versión como parámetros:
Esto mostrará “23.0.46.0 es menor que 24.1.154.0”.