calebadm
Goto Top

Powershell - Allgemeines Verständnis

# Das ist das Script
#
param([string]$in)

function eineFunktion([string]$input)
{
      # Hier wird nichts ausgegeben
      Write-Host $input
}

eineFunktion($in)

# Hier gibt er den Eingabe-Parameter "Hallo" aus
Write-Host $in

#

.\script.ps1 "Hallo"
Warum kann man der Funktion den Parameter nicht durchreichen?

Content-ID: 258125

Url: https://administrator.de/contentid/258125

Ausgedruckt am: 22.11.2024 um 01:11 Uhr

colinardo
Lösung colinardo 19.12.2014 aktualisiert um 12:38:26 Uhr
Goto Top
Hallo calebadm,
weil die Variable $input eine "spezielle" Powershell-Variable ist face-wink Nutze also einen anderen Namen für deine Variable...dann klappt das.

$input wird in einer Pipe als Alternative zu $_ verwendet, ist also eine globale Variable der Powershell die man nicht als eigene Variable nutzen kann.
Beispiel:
@("Test","Test2") | %{$input}
gibt das gleiche aus wie
@("Test","Test2") | %{$_}
Grüße Uwe
calebAdm
calebAdm 19.12.2014 um 12:39:20 Uhr
Goto Top
Hi colinardo, Dankeschön.
AnkhMorpork
AnkhMorpork 19.12.2014 um 12:45:36 Uhr
Goto Top
Hallo,

und damit es nie wieder passiert:

http://technet.microsoft.com/en-us/library/hh847768.aspx


Gruß

ankh