PowerShell function und return

Mitglied: filippg

filippg (Level 3) - Jetzt verbinden

27.05.2012 um 00:01 Uhr, 22157 Aufrufe, 3 Kommentare

Hallo,

ich will in PowerShell eine Funktion schreiben, die einen Wert zurück gibt. Dabei stoße ich auf das eine Funktion alles Output zurück gibt, was nicht aufgefangen wird.

gibt eben nicht "aergerloech" zurück, sondern gleich 10x aergerloech (was dann natürlich schon sehr ärgerlich ist). Sucht man ein wenig, so findet man heraus, dass das Problem durchaus bekannt ist. Aber was ich noch nicht finden konnte ist eine Lösung dafür. Wenn man vor das $sb.Append ein [void] setzt, bekommt man nur ein aergerloech, aber davor ein Leerzeichen. Man müsste also bei jeder FUnktion genau suchen, welche Zeile alles einen Output produziert, und den dann jeweils unterdrücken. Aber das kann doch wohl nicht die Lösung sein! Gibt es kein "Verwerfe allen Output", damit dann anschließend tatsächlich nur der bei return angegebenen Wert zurückgegeben wird?

Gruß

Filipp
Mitglied: dog
27.05.2012 um 03:00 Uhr
Die Lösung ist doch recht einfach zu finden:
http://rkeithhill.wordpress.com/2007/09/16/effective-powershell-item-7- ...

Dort gibt es sogar dein Beispiel mit dem StringBuilder und die genaue Erklärung, warum das passiert.

Und jetzt schauen wir mal warum [void] nicht funktioniert:
Du bekommst also immer noch ein Array zurück, also hast du vergessen was zu capturen.
Und wenn du jetzt deinen Code durchgehst, dann siehst du recht schnell, dass dein
daran schuld ist.
Und das ist ohnehin überflüssig, weil in Powershell Variablen nicht vor der Benutzung deklariert werden müssen.

Schon passt es...
Bitte warten ..
Mitglied: filippg
27.05.2012 um 14:24 Uhr
Hallo Dog,

danke für die Antwort. Der Knackpunkt liegt im
Und wenn du jetzt deinen Code durchgehst, dann siehst du recht schnell, dass ...
daran schuld ist.
Es muss doch eine Lösung geben, mit der man das generisch lösen kann. Denn erstens habe ich das nicht "recht schnell" gesehen, sondern gar nicht, und zweitens kann es ja auch mal sein, dass ich eine Function mit ein paar Zeilen mehr schreiben will, bei der es dann auch du oder sonstwer nicht mehr recht schnell sieht. In sofern also: das konkrete Problem ist gelöst, danke für die Hilfe. Aber Generell muss es da einfach noch etwas geben.

Gruß

Filipp
Bitte warten ..
Mitglied: filippg
09.06.2012, aktualisiert um 01:14 Uhr
Hallo,

also, eine wirklich hübsche Lösung habe ich noch nicht, aber eine, die es einem erspart, in großen Funktionen stundenlang zu suchen, welche Zeile denn nun einen Wert auf die Pipe legt. Ich verwende jetzt Set-Variable.

Grüße

Filipp
Bitte warten ..
Heiß diskutierte Inhalte
Windows Server
Veeam - DCs restore - 0xc00002e2
gelöst Freak-On-SiliconFrageWindows Server22 Kommentare

Servus; Ich hab hier zwei Server 2012R2 DCs auf jeweils einem Hyper-V sitzen. Gesichert wird mit Veeam B&R. JA, ...

CPU, RAM, Mainboards
Hardwareanforderung für Remote Desktop
gelöst Diddi-tbFrageCPU, RAM, Mainboards12 Kommentare

Hallo zusammen, ich brauche mal wieder einen Rat von euch. Mein Chef möchte gerne öfter von zu Hause aus ...

Multimedia & Zubehör
Anforderungen an Telefonanlage
jensgebkenFrageMultimedia & Zubehör10 Kommentare

Hallo Gemeinschaft, bin auf der Suche nach einer Telefonanlage die folgendes können muss: - unterschiedliche Ansagen (z.b. während der ...

LAN, WAN, Wireless
Studentenwohnheim LAN Anschluss mit Router verbinden
SchweisserFrageLAN, WAN, Wireless8 Kommentare

Hallo Leute, ich habe zu dem Thema schon einige Beiträge gelesen, konnte aber für meinen Fall bisher keine funktionierende ...

Humor (lol)
Wir werden alt
Dilbert-MDFrageHumor (lol)7 Kommentare

Themenbereich OT Neulich bei einem IT-Problem: Ein IT-Problem ist kein Problem, wenn man die richtigen Suchbegriffe und Fachwörter in ...

DNS
DNS in AD und pfSense - pfBlockerNG Listen werden nicht beruecksichtigt
DerDummePeterFrageDNS7 Kommentare

Moin, ich bin der Peter und hab mich hier nun doch angemeldet. Ich habe mit IT ueberhaupt nix zu ...

Ähnliche Inhalte
Batch & Shell
PowerShell Return Value
gelöst Kiso222FrageBatch & Shell11 Kommentare

Hallo liebe Community, ich lerne derzeit Powershell und habe ein Problem mit den Return Values und bitte um Hilfe. ...

Batch & Shell

Powershell - WMI Return Codes unterdrücken, WIE?

gelöst instinctlessFrageBatch & Shell3 Kommentare

Hi, ist vermutlich ne noob frage aber ich habe folgendes Problem Folgender Aufruf in einem Script gibt auf der ...

C und C++

Methode multiple return values

gelöst mayho33FrageC und C++8 Kommentare

Hallo Community, ich habe wieder mal eine Frage und hoffe auf eure KnowHow! Ich möchte eine Methode erstelle die ...

Batch & Shell

Shell-Skript .sh Function, Schleife . ?

volker01FrageBatch & Shell1 Kommentar

Hallo, ich bin ein ein Shell Anfänger und suche Eure Unterstützung: Ich habe ein Skript zum Mounten von Externen ...

Datenbanken

MySQL Function Anzahl Datensätze ermitteln

gelöst MultiStormFrageDatenbanken4 Kommentare

Hallo, aktuell stehe ich vor einem Problem bei dem ich nicht weiter komme. ich wollte mit eine MySQL funtion ...

E-Mail

Standard Return-Path bei einer Bouncemail

WinLiCLIFrageE-Mail9 Kommentare

Hallo zusammen, was ist der default Return-Path bei einer Bouncemail? Wird dieses Feld dann einfach mit dem Null Sender ...

Berechtigungs- und IdentitätsmanagementBerechtigungs- und IdentitätsmanagementWebdienste und -serverWebdienste und -serverDatenbankenDatenbankenMonitoring & SupportMonitoring & SupportHybrid CloudHybrid CloudSmall Business ITSmall Business IT