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-Key: 258125

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

Printed on: April 25, 2024 at 20:04 o'clock

Member: colinardo
Solution colinardo Dec 19, 2014 updated at 11:38:26 (UTC)
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
Member: calebAdm
calebAdm Dec 19, 2014 at 11:39:20 (UTC)
Goto Top
Hi colinardo, Dankeschön.
Member: AnkhMorpork
AnkhMorpork Dec 19, 2014 at 11:45:36 (UTC)
Goto Top
Hallo,

und damit es nie wieder passiert:

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


Gruß

ankh