-1

我需要有关我在 AnthillPro 中编写的 Powershell 脚本的帮助,以自动更新我的配置文件中的发布版本号。

我正在阅读我的配置文件以查找当前版本,然后使用“gc”命令将其更改为另一个值。

问题是变量 $currentRelease 在 'gc' 命令的第一个参数中没有得到解决,因为这是单引号。我尝试使用转义字符但无法解决问题。

如何解析 $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>
4

1 回答 1

1

单引号字符串不会扩展其中的变量。这就是他们的观点。

于 2015-10-06T21:17:15.663 回答