@Vellis-msk

Возможна ли замена переменных средствами PowerShell?

Добрый день.
Есть файл, назовем его params.ini, имеющий следущее содержание:
{param: variable1} = sample1
{param: variable2} = sample2
{param: variable3} = sample3
Есть каталог Test, с вложенными каталогами и файлами.
Задача, скриптом PowerShell получить значения переменных из файла params.ini и заменить их во всех найденных файлах всех каталогов в папке Test по маске, предположим во всех файлах *.sql,*.json,*conf.
Помогите пожалуйста.
  • Вопрос задан
  • 139 просмотров
Решения вопроса 1
@MaxKozlov Куратор тега PowerShell
Что-нибудь типа
$params =@{}
Get-Content d:\params.ini | foreach-object {
If $_ -match '\[param:(^]+)\]\s*=\s*(.*)' { $params[$matches[1]}=$matches[2] }
}
$filelist = get-childitem d:\work *json,*sql
Foreach $file in$filelist {
Get-content $file | foreach-object {
If $_ -match 'Тут нужный regex для файла' -and $params.contains($matches[1]){
$_=$_ - replace 'тут тоже регекс', $params[$atches[1])
}
} |set-content $file
}

Синтаксис не выверял, кое-что поправить придется конечно
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы