Объединение test-Path -Path с регулярным выражением - PullRequest
1 голос
/ 29 мая 2019

В 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 ]

2 голосов
/ 29 мая 2019

Вы можете использовать это, чтобы увидеть, можно ли найти одну или несколько папок с таким именем.

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

Надеюсь, это поможет

0 голосов
/ 29 мая 2019

Попробуйте использовать следующее регулярное выражение:

s\d{2,3}

Например, нажмите здесь

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...