Parameter in Powershell ignorieren, wenn leer
Hi,
Ich habe ein Powershell Script, was bishe rmit einem Parameter aufgerufen wird:
Es muss jetzt aber noch ein Zweiter Parameter hinzu:
Dieser ist aber nur optional, sprich, er wird nur ab und Zu beim Aufruf des Script genutzt. Wie bekomme ich es jetzt hin, dass der Paramerter einfach übersprungen wird, wenn ich ihn beim Aufruf nicht definiere?
So sieht das Ganze im Script aus:
Der Zweite Parameter wird innerhalb des Scriptes mit einer if-Abfrage geprüft.
Wenn jetzt halt Parameter2 beim Aufruf des Scripts nicht gesetzt wird, soll das Script ganz normal laufen wie bisher: wenn der Parameter gesetzt ist, dann soll das Script das machen, was in der if-Abfrage definiert ist.
Wenn ich den Parameter jetzt weglasse, kommt halt vom Script die Frage, was denn der zweite Parameter ist:
Ich habe ein Powershell Script, was bishe rmit einem Parameter aufgerufen wird:
.\meinScript.ps1 param1
Es muss jetzt aber noch ein Zweiter Parameter hinzu:
.\meinScript.ps1 param1 param2
Dieser ist aber nur optional, sprich, er wird nur ab und Zu beim Aufruf des Script genutzt. Wie bekomme ich es jetzt hin, dass der Paramerter einfach übersprungen wird, wenn ich ihn beim Aufruf nicht definiere?
So sieht das Ganze im Script aus:
param (
[Parameter(Mandatory=$true)][String]$param1,
[Parameter(Mandatory=$true)][String]$param2
)
Der Zweite Parameter wird innerhalb des Scriptes mit einer if-Abfrage geprüft.
if ($param2 -like 'irgendwas'){}
Wenn jetzt halt Parameter2 beim Aufruf des Scripts nicht gesetzt wird, soll das Script ganz normal laufen wie bisher: wenn der Parameter gesetzt ist, dann soll das Script das machen, was in der if-Abfrage definiert ist.
Wenn ich den Parameter jetzt weglasse, kommt halt vom Script die Frage, was denn der zweite Parameter ist:
.\meinScript.ps1 param1
cmdlet meinScript.ps1 at command pipeline position 1
Supply values for the following parameters:
param2:
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 8099710061
Url: https://administrator.de/forum/parameter-in-powershell-ignorieren-wenn-leer-8099710061.html
Ausgedruckt am: 22.12.2024 um 16:12 Uhr
1 Kommentar
Zweiten Parameter optional setzen mit Mandatory=$false
Und die if Abfrage kann man dann auch hiermit machen ob Parameter 2 genutzt wurde
Gruß siddius
param (
[Parameter(Mandatory=$true)][String]$param1,
[Parameter(Mandatory=$false)][String]$param2
)
Und die if Abfrage kann man dann auch hiermit machen ob Parameter 2 genutzt wurde
If ($PSBoundParameters.ContainsKey('param2')){
# param2 was used
}
Gruß siddius