如何使用 powershell 验证构建管道中 azure 任务中的空字段
How to validate empty field in azure task in build pipeline using powershell
我正在 Azure 构建管道中创建新的 VSTS/TFS 扩展。
在该扩展中,一个字段接受文件路径,它是可选字段。
在powershell脚本中,我想验证该字段,如果没有提供输入则我必须忽略,否则我必须检查输入是否是.config文件的路径。
$ConfigFileName = Get-VstsInput -Name 'ConfigFilePath'
if (!(Test-Path $ConfigFileName))
{
Write-Host "Configuration file doesn't exist."
"##vso[task.complete result=Failed]"
throw "Configuration file doesn't exist."
}
if([IO.Path]::GetExtension($ConfigFileName) -ne '.config')
{
Write-Host "Invalid configuration file.File type must be of .config"
"##vso[task.complete result=Failed]"
throw "Invalid configuration file.File type must be of .config"
}
我已经像上面那样验证了,但是当用户没有提供任何输入时,$ConfigFileName 变量也填充了 $ 值的映射路径。
如何检查提供给该字段的输入是否为空?
对于filePath类型的输入字段,默认值为源目录(Build.SourcesDirectory,例如D:\a\s)。因此,您可以检查该值是否不等于源目录。
例如:
{
"name": "filePathSelect",
"type": "filePath",
"label": "test select Path",
"required": false,
"defaultValue": "",
"helpMarkDown": "test select path"
}
PowerShell:
Write-Host "get select file path value"
$fileSelectPathValue = Get-VstsInput -Name filePathSelect
Write-Host "select file path value is $fileSelectPathValue"
Write-Host "default path $env:Build_SourcesDirectory"
if([string]::IsNullOrEmpty($fileSelectPathValue)){
Write-Host "Selected File path is empty"
}
elseif(($fileSelectPathValue -eq $env:Build_SourcesDirectory) -or !(Test-Path $fileSelectPathValue))
{
Write-Host "select path is invalid"
}
else
{
Write-Host "select path is valid"
}
如果输入类型是string,那么只需要检查value是null还是empty即可[string]::IsNullOrEmpty
.
我正在 Azure 构建管道中创建新的 VSTS/TFS 扩展。 在该扩展中,一个字段接受文件路径,它是可选字段。 在powershell脚本中,我想验证该字段,如果没有提供输入则我必须忽略,否则我必须检查输入是否是.config文件的路径。
$ConfigFileName = Get-VstsInput -Name 'ConfigFilePath'
if (!(Test-Path $ConfigFileName))
{
Write-Host "Configuration file doesn't exist."
"##vso[task.complete result=Failed]"
throw "Configuration file doesn't exist."
}
if([IO.Path]::GetExtension($ConfigFileName) -ne '.config')
{
Write-Host "Invalid configuration file.File type must be of .config"
"##vso[task.complete result=Failed]"
throw "Invalid configuration file.File type must be of .config"
}
我已经像上面那样验证了,但是当用户没有提供任何输入时,$ConfigFileName 变量也填充了 $ 值的映射路径。 如何检查提供给该字段的输入是否为空?
对于filePath类型的输入字段,默认值为源目录(Build.SourcesDirectory,例如D:\a\s)。因此,您可以检查该值是否不等于源目录。
例如:
{
"name": "filePathSelect",
"type": "filePath",
"label": "test select Path",
"required": false,
"defaultValue": "",
"helpMarkDown": "test select path"
}
PowerShell:
Write-Host "get select file path value"
$fileSelectPathValue = Get-VstsInput -Name filePathSelect
Write-Host "select file path value is $fileSelectPathValue"
Write-Host "default path $env:Build_SourcesDirectory"
if([string]::IsNullOrEmpty($fileSelectPathValue)){
Write-Host "Selected File path is empty"
}
elseif(($fileSelectPathValue -eq $env:Build_SourcesDirectory) -or !(Test-Path $fileSelectPathValue))
{
Write-Host "select path is invalid"
}
else
{
Write-Host "select path is valid"
}
如果输入类型是string,那么只需要检查value是null还是empty即可[string]::IsNullOrEmpty
.