【发布时间】:2011-06-06 19:01:55
【问题描述】:
我有一个 SQL 恢复脚本(文件系统上的文件),其中包含要恢复的数据库列表,如下所示:
恢复数据库 DB1... 恢复数据库 DB2... 恢复数据库 DB3...
然后我有一个对象,其中包含已经在线的数据库列表。
$onlineDatabases.Database 输出 DB1 DB2
如何返回仅包含 DB3 数据库的新恢复脚本?
【问题讨论】:
我有一个 SQL 恢复脚本(文件系统上的文件),其中包含要恢复的数据库列表,如下所示:
恢复数据库 DB1... 恢复数据库 DB2... 恢复数据库 DB3...
然后我有一个对象,其中包含已经在线的数据库列表。
$onlineDatabases.Database 输出 DB1 DB2
如何返回仅包含 DB3 数据库的新恢复脚本?
【问题讨论】:
$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 以保存它。
【讨论】: