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

Printed on: May 4, 2024 at 15:05 o'clock

Member: falscher-sperrstatus
falscher-sperrstatus Aug 13, 2020 at 14:49:19 (UTC)
Goto Top
Wenn es dafür keine Funktion gibt dann Bau eine rekursive
Member: emeriks
Solution emeriks Aug 13, 2020 updated at 14:59:31 (UTC)
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
Member: SeaStorm
Solution SeaStorm Aug 13, 2020 at 15:06:52 (UTC)
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)"}  
Member: DerWoWusste
DerWoWusste Aug 13, 2020 updated at 15:08:10 (UTC)
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.