我有一个SQL恢复脚本(文件系统上的文件),其中包含要恢复的数据库列表,如下所示:
RESTORE DATABASE DB1 ... RESTORE DATABASE DB2 ... RESTORE DATABASE DB3 ...
然后我有一个对象,其中包含已经在线的数据库列表。
$ onlineDatabases.Database输出 DB1 DB2
如何返回仅包含DB3数据库的新还原脚本?
答案 0 :(得分:1)
$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-file以保存它。