I wrote this code in PowerShell script but for some reason it's not working. The program itself is working but the replacing of multiline is not working - can anyone shed any light as to why?
Function Get-FileName($initialDirectory)
{
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") |
Out-Null
$OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
$OpenFileDialog.initialDirectory = $initialDirectory
$OpenFileDialog.filter = "SCD (*.scd)| *.scd"
$OpenFileDialog.ShowDialog() | Out-Null
$OpenFileDialog.filename
}
$inputfile = Get-FileName "C:\Users\Mr.Nephilim\Desktop\ABB"
#$inputdata = get-content $inputfile
#$configFiles = Read-Host 'Enter Complete directory to file'
(Get-Content $inputfile) |
Foreach-Object {
$_ -replace '(?ms)^\[\t\n\v\f\r ]<Private type="ABB.*?</Private>', ''
#-replace '<Terminal .+\/>', '' `
#-replace '<Terminal .*?>\s<\/Terminal>', '' `
#-replace '<Private type=\"ABB(.|\n)*?<\/Private>', '' `
#-replace '<ConnectivityNode.*?>(.|\n)*?<\/ConnectivityNode>', ''
#-replace '<Terminal .+/>', '' `
#-replace '<Private type="ABB.*?>.*?</Private>', '' `
#-replace '<Terminal .+>', '' `
#-replace '<Private type=\"ABB.*?>', '' `
#-replace '<esld:.*?>', '' `
#-replace '<esld:.*?\/>', '' `
#-replace '</esld:.*?>', '' `
#-replace '</Private.*?>', '' `
#-replace '</Terminal.*>', '' `
#-replace '<ConnectivityNode.*?>', '' `
#-replace '</ConnectivityNode.*?>', ''
} |
Set-Content $inputfile
(GC $inputfile)|?{$_.Trim(" `t")}|SC $inputfile