Wie kann ich ein Powershell-Skript erstellen, das den Standard-Bestätigungsschalter nutzen kann?

Wie kann ich ein Powershell-Skript erstellen, das den Standard-Bestätigungsschalter nutzen kann?

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.

verwandte Informationen