none
Rechnen mit Variablen Operatoren RRS feed

  • Frage

  • Liebe Kollegen

    Ich habe begonnen mit Powershell zu programmieren und brauche eure hilfe. Ich versuche zurzeit einen Taschenrechner zu programmieren, doch leider gibt es eine Hürde bei der ich gerne eure Unterstützung beanspruchen möchte.

    Und zwar möchte ich einen Operator welches ich zuvor in einer Variable gespeichert habe für eine Rechnung verwenden. Wie kann ich das am einfachsten lösen. Ich möchte keine IF/Switch Funktionen einbauen, Powershell sollte ja von haus aus richtig rechnen können.

    Beispiel:

    $var1 = 5

    $var2 = 8

    $var3 = +

    $result = $var1 $var3 var2

    Freue mich über alle Tipps die ich erhalte.


    • Bearbeitet Emin58 Montag, 20. Juni 2016 13:28
    Montag, 20. Juni 2016 13:28

Antworten

  • https://technet.microsoft.com/de-de/library/hh849893.aspx

    Evgenij Smirnov

    msg services ag, Berlin -> http://www.msg-services.de
    my personal blog (mostly German) -> http://it-pro-berlin.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com

    In theory, there is no difference between theory and practice. In practice, there is.

    Montag, 20. Juni 2016 13:32
  • Hallo,

    mit dem Cmdlet Invoke-Expression kannst du Strings ausführen, als wären sie implementierter Code:

    $String = "3*4"
    
    Invoke-Expression $String

    Den String kannst du entweder direkt eingeben lassen oder durch Verknüpfung generieren. Da sind der Kreativität keine Grenzen gesetzt.

    Spannend wird es, wenn du höherwertige Operationen wie Potenzen und sin, cos, tan ausführen willst. Die funktionieren über [math]::pow() usw. Dafür könntest du  Funktionen definieren, um die Taschenrechner-Syntax einfach zu halten:

    function Potenz($a, $b)
    {
        return [math]::Pow($a,$b)
    }
    
    $String = "Potenz 4 5"
    Invoke-Expression $String

    Viele Grüße

    Christoph



    Montag, 20. Juni 2016 13:42

Alle Antworten