将test-Path -Path与正则表达式结合使用

时间:2019-05-29 09:08:48

标签: regex powershell

在Jenkins中,我正在创建PowerShell脚本。工作正常:

if (Test-Path -Path "$baseDirectory\s*") {...}

但这是“危险的”并且不够“安全”。

目录名称将是:sdd或sddd(d =位)。 因此,名称以字符“ s”开头,长度为2,然后是三位数。

我尝试了以下方法:

if (Test-Path -Path "$baseDirectory\ -match 's(\d{2,3})'") {...}

if (Test-Path -Path "-match '$baseDirectory\s(\d{2,3})'") {...}

和各种微小差异。

如果我使用s *执行此操作,则脚本将返回目录名称s54,s55等。

我希望,如果可能的话,使用正则表达式可以得到相同的结果,而不是“找不到目录”。

2 个答案:

答案 0 :(得分:2)

您可以使用它来查看是否可以找到一个使用该名称的文件夹。

if ([bool](Get-ChildItem "$baseDirectory\s*" -Directory | Where-Object { $_.Name -match 's\d{2,3}$' })) {
    # your code goes here
}

希望有帮助

答案 1 :(得分:0)

尝试使用以下正则表达式:

s\d{2,3}

For Example, Click Here

祝你好运!