Хорошо, прежде чем это будет помечено как дубликат, я попробовал большинство предложений в похожих вопросах на StackOverflow, но ни одно из них не сработало в моем случае, поэтому здесь я прошу помощи.
Во-первых, вот выдержка из кода:
$pathConf = "C:\Program Files (x86)\Zabbix Agent\zabbix_agentd.conf"
$searchedText =
'### Option: Alias
# Sets an alias for an item key. It can be used to substitute long and complex item key with a smaller and simpler one.
# Multiple Alias parameters may be present. Multiple parameters with the same Alias key are not allowed.
# Different Alias keys may reference the same item key.
# For example, to retrieve paging file usage in percents from the server:
# Alias=pg_usage:perf_counter[\Paging File(_Total)\% Usage]
# Now shorthand key pg_usage may be used to retrieve data.
# Aliases can be used in HostMetadataItem but not in HostnameItem or PerfCounter parameters.
#
# Mandatory: no
# Range:
# Default:'
$replacedText =
'### Option: Alias
# Sets an alias for an item key. It can be used to substitute long and complex item key with a smaller and simpler one.
# Multiple Alias parameters may be present. Multiple parameters with the same Alias key are not allowed.
# Different Alias keys may reference the same item key.
# For example, to retrieve paging file usage in percents from the server:
# Alias=pg_usage:perf_counter[\Paging File(_Total)\% Usage]
# Now shorthand key pg_usage may be used to retrieve data.
# Aliases can be used in HostMetadataItem but not in HostnameItem or PerfCounter parameters.
#
# Mandatory: no
# Range:
# Default:
Alias=my.service.discovery[*]:service.discovery'
((Get-Content -path $pathConf -raw) -replace $searchedText, $replacedText) | Set-Content -Path $pathConf
Итак, здесь я ищу этот абзац текста, чтобы заменить его другим абзацем текста, чтобы добавить строку в нужном месте, но по какой-то причине это не работает. Я попытался добавить различные символы EOL, как предлагалось в других сообщениях, но безрезультатно. Я видел другой пост, предлагающий зациклить каждую строку файла, но это не кажется оптимальным в контексте. Кроме того, команда Select-String $searchedText -Path $pathConf
ничего не возвращает (не ложь, просто ничего), поэтому я предполагаю, что проблема в том, чтобы найти соответствие, а не заменить его. Файл UTF-8 под Win10.
Отказ от ответственности для тех, кто знаком с zabbix, я знаю, что могу просто добавить текст в EOF для тех же результатов, но мне нравятся мои файлы конфигурации, хорошо организованные, поэтому здесь я ломаю голову над этой проблемой;)
Так что же я здесь упускаю или делаю не так, чтобы найти и заменить этот абзац текста? Спасибо