Powershelldatei in Powershell mit Argumenten aufrufen?

1 Antwort

Ich gehe jetzt nicht auf die einzelnen Aufrufstrategien ein. Im folgenden verwende ich einfach DotSourcing... Dabei verhält sich das aufgerufene Script wie eine intern deklarierte Funktion/Scriptblock. Der Call-Operator , IEX oder ein Aufruf via Start-Process sind bezüglich der Parameterübergabe ähnlich/ bzw. irrelevant.

MainScript.ps1

Write-Host Ich bin das Hauptscript, rufe Subscript
 #einfache  Übergabe, das aufgerufene Script  soll zusehen wie es mit den Parametern zurecht kommt
. '.\subScript simple Args.ps1' 'blah' 'blub mauff' 0815 rugetigoooh "blut is im Schuh"
 #übergabe mit im Zielscript festgelegten namendlichen Parametern
. '.\subScript NamedParams.ps1' 'blah' 3
. '.\subScript NamedParams.ps1' heinz keineZahl #verstösst bewusst gegen die Verinbarung, das der 2.Parameter ein Integer sein soll! Fehlermedug garantiert
. '.\subScript NamedParams.ps1' -Number 66 -Name franz
pause

subScript simple Args.ps1

Write-Host Ich  bin das Subscript mit unbenannten argumenten -fo Magenta
Write-Host ...das erste  Uebergebene Argument  ist $args[0]
#alle argumente an eine Pipeline übergeben und nacheinander auswerten.
$args | %{$i=0}{
    
    Write-Host  `$args[$i] = $_
    $i++
}
Write-Host Subscript ends... -fo green

subScript NamedParams.ps1

Param(
  [string]$Name='Default Nix',
  [int]$Number=0
)
Write-Host Ich bin das Subscript -fo Magenta
Write-Host $Name 
Write-Host $Number
Write-Host Subscript ends... -fo green

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren