以下脚本搜索删除 SSIS 中的语句。这些删除语句出于某种原因来自 sql 缓存,它们返回时缺少“]”。这个丢失的大括号导致我的选择对象失败,请参阅下面的错误。我无法在搜索之前删除大括号,否则它将找不到匹配项,但将其保留会导致选择问题。有没有办法在选择对象期间忽略这些大括号。如果删除没有任何大括号,则脚本就像一个魅力。
$SearchStrings = Get-Content "C:\Users\someuser\Desktop\DataDumps_PS\Delete_input.txt"
$out_file = "C:\Users\someuser\Desktop\DataDumps_PS\Deletes$(get-date -f yyyyMMdd).txt"
$RootString = "E:\SSIS_packages\"
Foreach($SearchString in $SearchStrings){
Write-host $SearchString
Get-ChildItem $RootString -recurse | Select-String -pattern $SearchString | group path |
Select-Object name,@{name="SearchString";expression={$SearchString.replace('[','').replace(']','')}} | Export-Csv $out_file -
append -NoTypeInformation -Force #select name, "$SearchString"
}
缺少大括号的删除错误。
Select-String : The string DELETE FROM [dbo].[APP_DMEVS_STG is not a valid regular
expression: parsing "DELETE FROM [dbo].[APP_DMEVS_STG" - Unterminated [] set.