Warum sind beide Arrays unterschiedlich?
Moin. Ich habe ein Problem mit Powershell. Ich habe ein Skript geschrieben für automatisches updaten. Dabei lese ich die installierte Versionsnummer aus und vergleiche sie mit der Versionsnummer auf dem offiziellen Server. Das funktioniert wie gewollt. Dann hatte ich mir überlegt eine Webseite aufzusetzen, auf der nur die aktuellste Versionsnummer geschrieben ist. Die will ich dann mit der installierten Version vergleichen. So habe ich die Kontrolle über den Download.
Das funktioniert nicht aus Gründen, die ich nicht verstehe.
Ich lese also die installierte Versionsnummer aus, vergleiche sie mittels -ne Vergleich mit der Nummer auf meiner Webseite. Obwohl die gleichen Nummern ausgelesen werden, gibt Powershell als Ergebnis "nicht gleich" wieder.
Das interessante ist, wenn ich den Output aus den jeweiligen Abfragen in einer txt-Datei speichere, dann haben die beiden txt-Dateien eine unterschiedliche Größe. Leerzeichen sind gelöscht. Augenscheinlich stehen in beiden die selben Zeichen drin. Wie kann das sein?
Das funktioniert nicht aus Gründen, die ich nicht verstehe.
Ich lese also die installierte Versionsnummer aus, vergleiche sie mittels -ne Vergleich mit der Nummer auf meiner Webseite. Obwohl die gleichen Nummern ausgelesen werden, gibt Powershell als Ergebnis "nicht gleich" wieder.
Das interessante ist, wenn ich den Output aus den jeweiligen Abfragen in einer txt-Datei speichere, dann haben die beiden txt-Dateien eine unterschiedliche Größe. Leerzeichen sind gelöscht. Augenscheinlich stehen in beiden die selben Zeichen drin. Wie kann das sein?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1976745164
Url: https://administrator.de/forum/warum-sind-beide-arrays-unterschiedlich-1976745164.html
Ausgedruckt am: 05.04.2025 um 10:04 Uhr
9 Kommentare
Neuester Kommentar

Ich habe ein Skript geschrieben
Nimm uns mal die Tomaten von den Augen bitte ....
Zitat von @bolsse:
Gesamtes Skript oder nur der Teil, der ausliest?
Den Teil in dem man sieht wie du die Inhalte beider Variablen ausliest und dann vergleichst.Gesamtes Skript oder nur der Teil, der ausliest?
Zusätzlich evt. den HTML/Text-Inhalt der Webseite wo du die Versionsnummer ablegst und mit welchem Content-Type du diese zurücklieferst.

Besser so
und Vergleich dann mittels
machen
Ich würde die Webseite ja gleich nur als Content-Type = "text/plain" ohne überflüssiges html gedöhns ausliefern ...
$t2_dl_aktuell = (iwr 'https://t2.pink-it.info/t2version.html').parsedhtml.body.innerText.trim()
if ([version]$t2_dl_aktuell2 -gt [version]$insver) {
# .....
}
Ich würde die Webseite ja gleich nur als Content-Type = "text/plain" ohne überflüssiges html gedöhns ausliefern ...

Zitat von @bolsse:
Warum -gt? Angenommen, die installierte Version wäre 22.9.9 und die aktuellste wäre 23.0.0. Käme dann nicht als Ergebnis 22.9.9 > 23.0.0 raus?
Nö, wenn die Version auf der Webseite größer als die installierte nur dann mach was ... Hier wird echter Versionsvergleich mit dem [version] Objekt gemacht Warum -gt? Angenommen, die installierte Version wäre 22.9.9 und die aktuellste wäre 23.0.0. Käme dann nicht als Ergebnis 22.9.9 > 23.0.0 raus?
[version]'23.0.0' -gt [version]'22.9.9'

Zitat von @bolsse:
Steckt hinter [version] das hier?
https://docs.microsoft.com/en-us/dotnet/api/system.version?view=net-6.0
Steckt hinter [version] das hier?
https://docs.microsoft.com/en-us/dotnet/api/system.version?view=net-6.0
Exakt.