derwowusste
Goto Top

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

Content-Key: 595933

Url: https://administrator.de/contentid/595933

Ausgedruckt am: 19.03.2024 um 14:03 Uhr

Mitglied: falscher-sperrstatus
falscher-sperrstatus 13.08.2020 um 16:49:19 Uhr
Goto Top
Wenn es dafür keine Funktion gibt dann Bau eine rekursive
Mitglied: 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
Mitglied: 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)"}  
Mitglied: 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.