AnthillPro (Powershell Script) - переменная внутри одинарной кавычки не разрешается
Мне нужна помощь со скриптом Powershell, который я пишу в AnthillPro, для автоматизации обновления версии выпуска в моем конфигурационном файле.
Я читаю свой файл конфигурации, чтобы найти текущую версию, а затем меняю ее на другое значение с помощью команды 'gc'.
Проблема в том, что переменная $currentRelease не разрешается в первом аргументе команды 'gc', поскольку она в одинарных кавычках. Я пытался использовать escape-символы, но не смог решить проблему.
Как мне разрешить $currentRelease, чтобы получить значение, хранящееся в нем? Пожалуйста, дайте мне знать ваши предложения.
(Обратите внимание, что переменные configFolder, ConfigFilename, appSettingsNewValue и release являются предопределенными свойствами в AntHillPro и корректно решаются. Никаких проблем с ними нет)
Обновление: теперь я могу успешно заменить нужный текст. Однако сейчас я сталкиваюсь с проблемой, когда файл XML, созданный после замены, поврежден. В начале файла есть специальный символ. Пожалуйста, дайте мне знать, если кто-нибудь сталкивался с подобной проблемой.
<project name="buildscript" default="create-file" basedir=".">
<target name="create-file">
<echo file="powershell.ps1" append="false">
[xml] $xdoc = get-content ${configFolder}\${configFilename};
$currentRelease = $xdoc.config_data.release;
(gc "${configFolder}\${configFilename}") -replace '<${release}>${currentRelease}', '<${release}>${appSettingsNewValue}' | out-file "${configFolder}\${configFilename}"
</echo>
</target>
</project>
1 ответ
Строки в одинарных кавычках не будут расширять переменные в них. Это их точка зрения.