मैं एक Powershell स्क्रिप्ट कैसे बना सकता हूं जो मानक पुष्टिकरण स्विच का लाभ उठा सकती है?


1

मान लें कि मेरे पास इस सामग्री के साथ .ps1 (वास्तविक सामग्री कोई फर्क नहीं पड़ता):

param(
    [Parameter(Mandatory=$true)]
    [string]
    $someArgument
)

# Do something risky
Remove-Item "c:\path\$someArgument.txt"

मैं अपनी स्क्रिप्ट (या वास्तव में किसी भी विधि में) को जोड़ना चाहूंगा, एक पुष्टिकरण संदेश, जिसे स्विच ऑफ किया जा सकता है (डिफ़ॉल्ट रूप से)।

.\myscript.ps1 "foo" -Confirm:$false

मैं उसे कैसे कर सकता हूँ ?

जवाबों:


3

उन्नत कार्यों के साथ, आप कंधेप्रोसेस नामक कुछ का उपयोग कर सकते हैं।

अपनी स्क्रिप्ट के शीर्ष पर, आप [CmdletBinding] नामक एक विशेषता जोड़ सकते हैं

[CmdletBinding(

        SupportsShouldProcess=$true,

        ConfirmImpact="High"

    )]

एक बार आपके पास, आपके फ़ंक्शन के शरीर में, आपको एक if स्टेटमेंट का उपयोग करने की आवश्यकता होती है

if ($pscmdlet.ShouldProcess($thingIamGoingToChange))

Help_advanced_functions के बारे में मदद पर विचार करें और about_functions_cmdletbinding मदद करें।


धन्यवाद! मैं CmdLetBinding की संभावनाओं में गोता लगाने के लिए होगा ... मुझे लगता है कि मैं इसके साथ बहुत आगे जा सकते हैं :)
स्टीव बी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.