冗余代码,我如何每行有多个参数

时间:2019-05-23 14:24:59

标签: powershell

此脚本有效,我想对其进行压缩,因此,如果我添加更多行来查找和替换文件中的文件,则不会多余。

Get-ChildItem C:\Users\JonSa\Desktop -Filter callcounts.xml | Foreach-         Object{
(Get-Content $_.FullName) | 
Foreach-Object {$_ -replace "@aXXXXX.ac1.vbspbx.com", ""} | 
Set-Content $_.FullName
}
Get-ChildItem C:\Users\JonSa\Desktop -Filter callcounts.xml | Foreach-   Object{
(Get-Content $_.FullName) | 
Foreach-Object {$_ -replace "sip:", ""} | 
Set-Content $_.FullName
}

我希望用更少的行来完成此操作,从而为更多的参数留出空间。

1 个答案:

答案 0 :(得分:0)

  • 只有一个文件,请勿使用Get-ChildItemForEach-Object
  • 使用-raw参数时,您可以将替换应用于整个文件
  • 您还可以一个接一个地附加几个-replace
  • 对于相同的替换项(此处没有),您可以使用替代|(或)
  • 可以使用-replace运算符省略空替换(不是使用.replace()方法)

$File = 'C:\Users\JonSa\Desktop\callcounts.xml'
(Get-Content $File -raw) -replace '@aXXXXX.ac1.vbspbx.com|sip:' | 
 Set-Content $File