Фильтровать файл на основе объекта строки - PullRequest
1 голос
/ 06 июня 2011

У меня есть сценарий восстановления SQL (файл в файловой системе), который содержит список восстанавливаемых баз данных, например:

RESTORE DATABASE DB1 ... RESTORE DATABASE DB2 ... RESTORE DATABASE DB3 ...

У меня есть объект, который содержит список баз данных, которые уже подключены к сети.

$ onlineDatabases.Database выводит DB1 DB2

Как вернуть новый сценарий восстановлениякоторая содержит только базу данных DB3?

1 Ответ

1 голос
/ 06 июня 2011
$online_databases = new-object psobject -property @{database = @("DB1","DB2")}
$test_script = "RESTORE DATABASE DB1","RESTORE DATABASE DB2","RESTORE DATABASE DB3"

[regex]$online_regex = "RESTORE DATABASE " + '(‘ + (($online_databases.database |foreach {[regex]::escape($_)}) –join “|”) + ‘)’
$new_script = $test_script -notmatch $online_regex

$new_script

RESTORE DATABASE DB3

Замените $ test_script на get-content в вашем файле сценария и направьте $ new_script в out-файл, чтобы сохранить его.

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