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 '&lt;${release}&gt;${currentRelease}', '&lt;${release}&gt;${appSettingsNewValue}' | out-file "${configFolder}\${configFilename}"
        </echo>
    </target>
</project>

1 ответ

Строки в одинарных кавычках не будут расширять переменные в них. Это их точка зрения.

Другие вопросы по тегам