calebadm

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?
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 258125

Url: https://administrator.de/forum/powershell-allgemeines-verstaendnis-258125.html

Ausgedruckt am: 08.07.2025 um 19:07 Uhr

colinardo
Lösung colinardo 19.12.2014 aktualisiert um 12:38:26 Uhr
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
Hi colinardo, Dankeschön.
AnkhMorpork
AnkhMorpork 19.12.2014 um 12:45:36 Uhr
Hallo,

und damit es nie wieder passiert:

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


Gruß

ankh