Powershell übernimmt String falsch in Variable
Moin zusammen,
ich finde keine Lösung für mein Problem...
In einer foreach-Schleife möchte ich u.a. Zeiten berechnen und hole mir mit Substring alles was ich brauche in einzelne Variablen- alles klappt bis auf eine Kleinigkeit.
Prüfe ich mit $Zeile.Substring(138) das Resultat, erhalte ich das was ich erwarte - hier zb 0,75
Egal wie ich ran gehe, PS macht aus dem Element was anderes
Ob ich es wie eigentlich geplant erstmal in eine Variable laufen lasse, es direkt in die Berechnung schicke oder was auch immer - ich blick nicht durch was PowerShell gegen die Kommazahl hat
Besten Dank schonmal für die Hilfe
Itchley
ich finde keine Lösung für mein Problem...
In einer foreach-Schleife möchte ich u.a. Zeiten berechnen und hole mir mit Substring alles was ich brauche in einzelne Variablen- alles klappt bis auf eine Kleinigkeit.
Prüfe ich mit $Zeile.Substring(138) das Resultat, erhalte ich das was ich erwarte - hier zb 0,75
PS C:\Users\itchl> $Zeile.Substring(138)
0,75
PS C:\Users\itchl> $Pause = $Zeile.Substring(138)
PS C:\Users\itchl> $Pause
75
Besten Dank schonmal für die Hilfe
Itchley
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 94233410645
Url: https://administrator.de/forum/powershell-uebernimmt-string-falsch-in-variable-94233410645.html
Ausgedruckt am: 03.04.2025 um 22:04 Uhr
3 Kommentare
Neuester Kommentar
Tach @Itchley
was steht denn überhaupt in $Zeile drin?
Vermutlich liegt es an unterschiedlichen Variablentypen und deren Interpretation.
Kreuzberger
was steht denn überhaupt in $Zeile drin?
Vermutlich liegt es an unterschiedlichen Variablentypen und deren Interpretation.
Kreuzberger

Nun, in PS ist das Komma kein Dezimaltrenner sondern dient dazu ein Array einzuleiten.
0,75 wäre also ein Array aus den Elementen 0 und 75. Das Dezimaltrennzeichen ist hier der Punkt (.). Wenn man also damit Rechnen will sollte man das entsprechend berücksichtigen.
Das ein reiner String aber als Array in den Output geschrieben wird und dazu das erste Element noch ausgelassen wird wäre ungewöhnlich, daher fehlt uns hier der Kontext woraus der Substring gezogen wird und welchem Typ die Variable $pause in der PS Session vorher schon einmal zugewiesen wurde.
Also die Variable zur Sicherheit vorher löschen (Remove-Variable) oder eine cleane Session verwenden.
Außerdem die Typen der Variablen mit .gettype() anzeigen lassen.
https://tio.run/##TYxBCsIwEEX3OUUYhLZQxE0RAi4Eb@DO0EVsRxsY25BpELx8LCaWLv ...
Gruß pp.
0,75 wäre also ein Array aus den Elementen 0 und 75. Das Dezimaltrennzeichen ist hier der Punkt (.). Wenn man also damit Rechnen will sollte man das entsprechend berücksichtigen.
Das ein reiner String aber als Array in den Output geschrieben wird und dazu das erste Element noch ausgelassen wird wäre ungewöhnlich, daher fehlt uns hier der Kontext woraus der Substring gezogen wird und welchem Typ die Variable $pause in der PS Session vorher schon einmal zugewiesen wurde.
Also die Variable zur Sicherheit vorher löschen (Remove-Variable) oder eine cleane Session verwenden.
Außerdem die Typen der Variablen mit .gettype() anzeigen lassen.
https://tio.run/##TYxBCsIwEEX3OUUYhLZQxE0RAi4Eb@DO0EVsRxsY25BpELx8LCaWLv ...
Gruß pp.