我需要编写一个函数,用bool
自动定义[ValidateScript()]
参数。
function Deploy-App {
Param(
[Parameter(Position=0)]
[ValidateScript({if (Test-Path .\DeployFiles.txt) { $UseFilepathFile = $true }})]
[Alias("u")]
[bool]$UseFilepathFile
)
Get-Location
Write-Host $UseFilepathFile
}
为什么即使文件存在于当前位置,它总是返回$false
? ValidateScript()
的使用是否错误,我不能像这样使用它?我怎么解决我的问题?
答案 0 :(得分:2)
您使用的是ValidateScript
错误的方式,ValidateScript
用于验证输入,而不是设置它。此外,您必须从ValidateScript
返回$ true,否则脚本无法正常工作。
您需要检查脚本本身的内部是否存在该文件。
if (Test-Path .\DeployFiles.txt) { $UseFilepathFile = $true }