[英]Passing multiline script to PowerShell from another PowerShell?
[英]How to debug why the replacing of multiline is not working in this PowerShell script?
我用PowerShell脚本编写了这段代码,但是由于某种原因,它无法正常工作。 该程序本身正在运行,但是多行替换却无法正常工作-任何人都无法阐明为什么吗?
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
(S?)(| \\ S)*? 使用这种方式可以做到...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.