derwowusste

Versionsnummern in Powershell vergleichen

Moin Kollegen.

Ich brauche mal einen Schubs, da ich die Syntax für einen Versionsvergleich nicht hinbekomme, für den Fall, dass die Versionen wie folgt aussehen:
$v1 = 9.1.1.1
$v2 = 10.1.1.1
if ($v1 -ge $v2) {msg * 9.1.1.1 ist groeßer oder gleich 10.1.1.1 !?}

Mir ist klar, dass die Auswertung misslingt, da $v2 eine zweistellige erste Ziffer hat, aber ich weiß nicht, wie ich es abstellen soll.
Sucht man hier im Forum, findet man zum Beispiel Dateiversionen mit Skript vergleichen und wenn Datei neuer ist, installieren welches ebensowenig funktioniert bei einem Vergleich von 9.x.x.x mit 10.x.x.x
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 595933

Url: https://administrator.de/forum/versionsnummern-in-powershell-vergleichen-595933.html

Ausgedruckt am: 05.05.2025 um 12:05 Uhr

certifiedit.net
certifiedit.net 13.08.2020 um 16:49:19 Uhr
Goto Top
Wenn es dafür keine Funktion gibt dann Bau eine rekursive
emeriks
Lösung emeriks 13.08.2020 aktualisiert um 16:59:31 Uhr
Goto Top
Hi DWW,
schau mal z.B. hier: https://stackoverflow.com/questions/48424152/compare-system-version-in-p ...

E.

Edit
$v1 = [System.Version]::New("1.0.0.0")  
$v2 = [System.Version]::New("1.1.0.0")  
$v1 -gt $v2  # liefert False
$v2 -gt $v1  # liefert True
SeaStorm
Lösung SeaStorm 13.08.2020 um 17:06:52 Uhr
Goto Top
Hi

du kannst die Variable als [version] deklarieren, dann geht das direkt:

[version]$v1 = "9.1.1.1"  
[version]$v2 = "9.1.1.2"  

if ($v1 -gt $v2) {write-host "$($v1) ist groeßer $($v2)"}  
if ($v1 -lt $v2) {write-host "$($v1) ist kleiner $($v2)"}  
if ($v1 -eq $v2) {write-host "$($v1) ist gleich $($v2)"}  
DerWoWusste
DerWoWusste 13.08.2020 aktualisiert um 17:08:10 Uhr
Goto Top
Hi emeriks.

Dein Edit sieht doch sehr gut aus! Das nehme ich, vielen Dank!
Edit: @SeaStorm, danke, da war Emeriks auch noch hingekommen.