Ich habe ein Powershell-Skript, das mehrere Funktionen enthält. Eine der Funktionen sollte Befehlszeilenargumente erhalten. Hier ist ein ähnliches Skript zu dem, was ich tue:Übergeben von CLI-Argumenten an eine Funktion in Powershell
$mydocs = [Environment]::GetFolderPath("MyDocuments")
function example() {
param(
[string]$name = "testfolder",
[switch]$foo = $false
)
$newdir = $mydocs + "\" + $name
if (!(Test-Path $newdir)) { mkdir $newdir }
}
example
Also, wenn ich laufen diese:
.\example.ps1 -name anewfolder -foo
ich die Funktion Beispiel diese Argumente verwenden möchten.
Aufgrund von Scoping hat meine Funktion keine $ Argumente. Ich schreibe Write-Host $ Argumente in die Funktion, um zu überprüfen, und es gibt nichts zurück. Wie kann ich die Elternargumente ziehen, sie in Params übergeben und Beispiel erhalten, um mit meinen Argumenten zu laufen? Oder sollte ich nur die Funktion entfernen und diesen Teil meines Codes im übergeordneten Bereich ausführen?
es auf diese Weise tun, dann würden Sie die gleiche 'param()' auf den Anfang des Skripts und dann rufen Sie die Funktion hinzufügen müssen (wie Sie tun) mit den angegebenen params. – brendan62269