Я получаю входные данные файла конфигурации, и мне нужно заменить определенную строку переменной среды, которую я передаю во время выполнения. Однако результирующая строка точно такая же (без изменений). Я использовал ключевое слово replace.
Я передал строку вместо одинарных кавычек, что означает, что она будет проходить как есть (строка содержит определенные значения в двойных кавычках), а затем ожидаемая строка в двойных кавычках.
$File = Get-Content path of file
if (![string]::IsNullOrWhiteSpace($env:ai_logging_mode)) **this is the env variable**
{
$file = $file | ForEach-Object { $_ -replace '<logger name="*" minlevel="Trace" writeTo="console" />', "<logger name=`"*`" minlevel=`"$env:ai_logging_mode`" writeTo=`"console`" />"};
}
Set-Content -Path path of the file -Value $file;
значение minlevel не меняется. Я передал значение как Информация. результат должен быть как
<logger name="*" minlevel="Info" writeTo="console" />
Однако результат все еще
<logger name="*" minlevel="Trace" writeTo="console" />