2015-11-13 7 views
5
param ([ValidateScript({ Test-Path -Path $_ -PathType Leaf })][string]$filePath) 

यदि मैं इस तरह का पैरामीटर घोषित करता हूं, तो $filePath गलत होगा यदि यह एक अवैध पथ है?फ़ाइल पथ पैरामीटर मान्य करें

इस की बात

if($filePath) { /* do stuff... */ } 

या की तरह कुछ करने के लिए है एक अपवाद फेंक दिया जाएगा?

+1

एक अपवाद उत्पन्न हो जाएगा:

यहाँ एक उदाहरण है –

उत्तर

10

यदि आपके फ़ंक्शन को वैध पथ की आवश्यकता है तो आपको ValidateScript विशेषता का उपयोग करना चाहिए। यदि उपयोगकर्ता अमान्य पथ प्रदान करता है तो PowerShell आपके लिए त्रुटि फेंक देगा। आप शायद [Parameter(Mandatory=$true)] भी जोड़ना चाहते हैं अन्यथा आप $filePath पैरामीटर को छोड़ सकते हैं और फ़ंक्शन को अपवाद के बिना बुलाया जाएगा।

function This-IsYourFunction 
{ 
    Param 
    (
     [Parameter(Mandatory=$true)] 
     [ValidateScript({Test-Path $_})] 
     [string] 
     $filePath 
    ) 

    Write-Host "Hello, World." 
} 
संबंधित मुद्दे