none
PS: Unterfunktion am Anfang des Skriptes definieren und erst nach der mina-Funktion initialisieren RRS feed

  • Frage

  •  Hallo,
    Ich bin noch Anfänger und bitte verbessert mich, wenn das nicht as richtige Forum ist!
    Meine Frage ist, wie ich eine Unter-Funktion noch vor der main-Funktion deklarieren, aber erst nach der main initialisieren kann.
    Die Begriffe Definition und Initialisierung habe ich aus der OOP übernommen. Falls sie hier falsch benutzt sind, bitte Bescheid sagen:)
    Unten steht ein Beispeil, was ich suche: Der Fehler taucht recht weit oben auf. Die Kommentare sind in Englisch, hoffe, das ist ok!
    Vielen Dank für Eure Hilfe!

    function: Build-EmailBody #  here I get an error: "The term function: is not recognized"...

     

    #main function (just contains the basic functionalities, no long values, so that it is easily to oversee)
    main{
    $params = @{
    From = $sender
    To = $recipient
    SmtpServer = $smtpServer
    BodyAsHtml = Build-EmailBody()
    Body = $body
    Subject = "test"
    }
    Send-MailMessage @params
    }
     
    #initialization of the Build-EmailBody-Function
    #this function is very long because of the base64 image-code
    #to give the script a good strcture, I wan to put this function to the end of the code
    function Build-EmailBody{
    $letterBeginning = Get-content "pfad"
    $letterEnd = Get-content "pfad"
    #image in base64-code
    $img2 =@"
    "@
    $img2_html = ""#html-code
    $emailBody = $letterBeginning + $img2 + $letterEnd
    return $emailBody}


    Montag, 19. Februar 2018 14:09

Antworten

  • Vor Main hast du das das Wörtchen Function vergessen. Und die Fehlermeldung weist darauf hin, das du im Script nach Function noch einen Doppelpunkt stehen hattest, der dort auch nicht hingehört.

    Function MeinFunktionsname {
    
      # Stuff
    
    }
     
    Deine Fragen lassen darauf schliessen, das du dir den Kram aus dem Netz besorgt hast, ohne zu verstehen was da passiert. Ich will dich nicht entmutigen, aber du wirst ohne die Grundlagen zu lernen, gleich wieder auf die Nase fallen. Besorg dir ein gutes Buch (z.b v. Tobias Weltner) oder schau dich im Netz nach Tutorials um. Es lohnt sich.

     
    Ansonsten was das Forum hier angeht, bitte Code (und nur den Code!) mit dem Code-Einfügen-Button ("<>") einsetzen und am besten auf das wichtigste kürzen.


    Blog: http://bytecookie.wordpress.com

    Kostenloser Powershell Code Manager v5: Link
    (u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.

    Montag, 19. Februar 2018 15:06
    Moderator

Alle Antworten

  • Warum wartest Du nicht erstmal bis Dir jemand hier geantwortet hat?

    https://powershell.org/forums/topic/declare-functions-at-the-beginning-of-the-script/


    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    Montag, 19. Februar 2018 15:05
  • Vor Main hast du das das Wörtchen Function vergessen. Und die Fehlermeldung weist darauf hin, das du im Script nach Function noch einen Doppelpunkt stehen hattest, der dort auch nicht hingehört.

    Function MeinFunktionsname {
    
      # Stuff
    
    }
     
    Deine Fragen lassen darauf schliessen, das du dir den Kram aus dem Netz besorgt hast, ohne zu verstehen was da passiert. Ich will dich nicht entmutigen, aber du wirst ohne die Grundlagen zu lernen, gleich wieder auf die Nase fallen. Besorg dir ein gutes Buch (z.b v. Tobias Weltner) oder schau dich im Netz nach Tutorials um. Es lohnt sich.

     
    Ansonsten was das Forum hier angeht, bitte Code (und nur den Code!) mit dem Code-Einfügen-Button ("<>") einsetzen und am besten auf das wichtigste kürzen.


    Blog: http://bytecookie.wordpress.com

    Kostenloser Powershell Code Manager v5: Link
    (u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.

    Montag, 19. Februar 2018 15:06
    Moderator