Как очистить возвращенные значения переменных в текстовом файле с помощью PowerShell? - PullRequest
0 голосов
/ 08 января 2020

У меня есть текстовые файлы со значениями, которые я бы хотел исключить с помощью скрипта PowerShell.

Например, есть следующие переменные и соответствующие им значения:

Customer FirstName = CHRISTINE
Customer LastName = TOWN
CRN = 211021815L

Я бы хотел, чтобы скрипт go просмотрел содержимое файла и заменил возвращаемые значения, чтобы они выглядят как показано ниже:

Customer FirstName = ******
Customer LastName = ******
CRN = ******

В идеале количество звездочек должно быть одинаковым для каждого возвращаемого значения, чтобы из него не могла быть получена информация. Например, если значение возврата Customer FirstName равно 8 символам, количество звездочек НЕ должно совпадать с 8 символами. Это должно быть произвольно.

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

Я очень плохо знаком с PowerShell, но придумаю что-то довольно простое c ниже:

(Get-Content C:\Temp\Logs\logfile.log).replace('CRN = <REGEXPRESSIONHERE>', '*****') | Set-Content C:\Temp\Logs\logfile.log

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

1 Ответ

1 голос
/ 08 января 2020

Вот возможное решение:

( Get-Content .\logfile.log | ForEach-Object { $_ -replace "(.+) = .+", "`$1 = ****" } ) | Set-Content .\logfile.log

Я полагаю, вы должны разрешить Get-Content и ForEach-Object для завершения перед записью в тот же файл. Вот причина дополнительных скобок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...