Я работаю над сценарием резервного копирования схемы базы данных в систему контроля версий.Я только что понял, что реплицируемые объекты также пишутся в сценарии;эти объекты начинаются с sp_MSupd_, sp_MSdel_, sp_MSins_ и syncobj_0x.Я хотел бы пропустить эти пункты.
Я знаю, что могу сделать что-то вроде этого:
$ExcludeObjectNames = @("sp_MSupd_", "sp_MSdel_","sp_MSins_","syncobj_0x")
If ($ExcludeObjectNames -contains "sp_MSdel_SampleObject")
{
Write-Host "replicated item found"
}
Но это работает только для точных совпадений.Я попытался добавить * к элементам в массиве, но это не сработало.И я знаю, что могу использовать -подобно, но это, кажется, только для отдельных значений, а не массивов.
Я знаю, что могу сделать это
$ObjectNames = "sp_MSdel_SampleObject"
If ($ObjectNames -like "sp_MSupd_*" -OR $ObjectNames -like "sp_MSdel_*" -OR $ObjectNames -like "sp_MSins_*" -OR $ObjectNames -like "syncobj_0x*")
{
Write-Host "replicated item found"
}
Это хорошо, НОесли я нахожу все больше и больше вещей, которые можно пропустить, это становится все более и более безобразным.
Есть ли способ использовать подстановочные знаки с -contains в массиве?