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

Wenn ich einen Parameter wie diesen deklariere, wird $filePath zu false ausgewertet, wenn es ein ungültiger Pfad ist?Validieren Sie den Dateipfadparameter

Ist der Punkt von diesem wie

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

oder wird eine Ausnahme ausgelöst werden?

+1

Eine Ausnahme wird ausgelöst, –

Antwort

10

Sie sollten das Attribut ValidateScript verwenden, wenn Ihre Funktion einen gültigen Pfad erfordert. PowerShell wird den Fehler für Sie auslösen, wenn der Benutzer einen ungültigen Pfad angibt. Sie möchten wahrscheinlich auch [Parameter(Mandatory=$true)] hinzufügen, sonst können Sie den Parameter $filePath weglassen und die Funktion wird ohne Ausnahme aufgerufen. Hier

ein Beispiel:

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

    Write-Host "Hello, World." 
}