
Nehmen wir an, ich habe eine .ps1-Datei mit diesem Inhalt (der tatsächliche Inhalt spielt keine Rolle):
param(
[Parameter(Mandatory=$true)]
[string]
$someArgument
)
# Do something risky
Remove-Item "c:\path\$someArgument.txt"
Ich möchte meinem Skript (oder eigentlich jeder beliebigen Methode) eine Bestätigungsnachricht hinzufügen, die ausgeschaltet werden kann (standardmäßig aktiviert).
.\myscript.ps1 "foo" -Confirm:$false
Wie kann ich das machen ?
Antwort1
Mit erweiterten Funktionen können Sie etwas namens ShouldProcess verwenden.
Am Anfang Ihres Skripts können Sie ein Attribut namens [CmdletBinding] hinzufügen.
[CmdletBinding(
SupportsShouldProcess=$true,
ConfirmImpact="High"
)]
Sobald Sie das haben, müssen Sie im Hauptteil Ihrer Funktion eine if-Anweisung verwenden
if ($pscmdlet.ShouldProcess($thingIamGoingToChange))
Sehen Sie sich die Hilfe zu erweiterten Funktionen und die Hilfe zu Funktionen_cmdletbinding an.