小编Har*_*Lin的帖子

通过 ValidateScript 属性将默认参数值与验证相结合

我有以下 PowerShell 代码来验证用户输入作为路径,如果用户没有输入任何内容,我试图为他们分配一个默认值。但是,当我运行它时,$filePath变量没有被分配任何值。

无论如何,我可以更改它以在验证进行时为其分配默认值吗?

代码如下:

function validatePath {
  Param
  (
      [ValidateScript({
        If ($_ -eq "" -or $_ -eq [String]::Empty) {
            $_ = "C:\Install"
            $True
        }
        ElseIf ($_ -match "^([a-z]:\\(?:[-\\w\\.\\d])*)") {
            $True
        } 
        Else {
            Write-Host "Please enter a valid path,$_ is not a valid path."
            Write-debug $_.Exception
        }
      })]
      [string]$filePath = "C:\Install"
  )
  Process
  {
      Write-Host "The path is "$filePath
  }
}

validatePath -filePath $args[0] 
Run Code Online (Sandbox Code Playgroud)

validation powershell default-value

5
推荐指数
1
解决办法
2624
查看次数

标签 统计

default-value ×1

powershell ×1

validation ×1