Избыточный код, как я могу иметь несколько аргументов в строке - PullRequest
0 голосов
/ 23 мая 2019

Этот скрипт работает, я хочу сжать его, поэтому, если я добавлю больше строк для поиска и замены в файле, я не буду лишним.

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 голосов
/ 23 мая 2019
  • Только с одним файлом, не используйте Get-ChildItem и ForEach-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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...