Jump to content

Zahlen vergleichen - funktioniert nicht immer


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo

 

Leider verzweifle ich am vergleichen an bestimmter Zahlen.

 

Ich lese anhand ein Liste verschiedene Nummern ab.

Diese vergleiche ich mit Zalen die ich aus einer CSV Importiert habe.

 

Das Script:

Import-Csv  c:\liste.txt | foreach {
$NAME = ($_.NAME)
$DISK = ($_.DISK)
$LIMIT = ($_.LIMIT)

 

Vergleichen mit der Zahl die ich per  Win32_LogicalDisk  ermittle.

 

 

if( "$TEMP" -lt "$LIMIT" ){

write-host "Zahl zu klein"
}

 

Das komische ist das immer wieder der Vergleich ( lt ) nicht geht.

 

z.b.:

Die Zahl 5120 ist kleiner als  15015 - OK
Die Zahl 1024 ist kleiner als 9760 - wird von lt aber als grösser erkannt?
usw..

 

hat mir jemand einen Tip?

 

 

Link zu diesem Kommentar

Dann erhalte ich folgende Fehlermeldung:

 

Fehlerhaftes Argument für den Operator "-lt": "15014" konnte nicht mit "5120" verglichen werden. Fehler: "Der Wert "51
0" vom Typ "System.Double" kann nicht in den Typ "Microsoft.PowerShell.Commands.MatchInfo" konvertiert werden.".
Bei C:\festplatte.ps1:27 Zeichen:17
+   if( $TEMP  -lt <<<<   $c ){
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : BadOperatorArgument
Link zu diesem Kommentar

Gib einmal nur die Inhalt und Typen der beiden Variablen aus, die du vergleichen möchtest.

 

 

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True False MatchInfo System.Object
True True Double System.ValueType

 

Das ist das Problem - oder?

 

Wie bringe ich die beiden Varibalen auf den gleichen Typ?

Wie gesagt: Die 2 Variablen / Zahlen sollen verglichen werden

 

Danke

Link zu diesem Kommentar

 

Danke

 

habe die Lösung:

Da ich den Typ MatchInfo nicht gleich in INT konvertieren kann habe ich einen zwischenschritt eingebaut

Zuerst in String konvertieren und dann in INT

 

[sTRING]$STRINGVAR = $MATCHINFO

[int]$ZAHL = $STRINGVAR

 

geht vieleicht auch "schoener" aber so funktioniert es!

freue mich trotzdem um eine Antwort, wenn es besser geht....

 

nochmal Danke

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...