如何使用Jenkins参数替换属性文件的值

如何使用Jenkins参数替换属性文件的值,jenkins,echo,Jenkins,Echo,我有settings.properties文件,其中有许多键值对,如下所示 browserName=Chrome ExecutionMode=Local 我使用settings.properties文件传递输入参数以运行自动化脚本 示例:例如,当我使用build参数运行jenkins作业时,我输入browserName作为InternetExplorer,它应该替换settings.properties文件中的值 我正在使用下面的命令来实现我的目标 echo browserName=%BROW

我有settings.properties文件,其中有许多键值对,如下所示

browserName=Chrome
ExecutionMode=Local
我使用settings.properties文件传递输入参数以运行自动化脚本

示例:例如,当我使用build参数运行jenkins作业时,我输入browserName作为InternetExplorer,它应该替换settings.properties文件中的值

我正在使用下面的命令来实现我的目标

echo browserName=%BROWSER\u NAME%>>设置。属性

但它并没有取代“browserName=Chrome”,而是在末尾添加了“browserName=InternetExplorer”

请告诉我如何替换browserName值?

您不能使用“>>”,因为它会将数据附加到文件中。如果使用“>”,它将在插入回显之前擦除文件的所有内容

因此,必须使用sed命令。我认为您应该运行以下命令:

sh“sed-i的/browserName=.*/browserName=${BROWSER\u NAME}/g”settings.properties”

编辑:为windows添加了两种方法

我发送给您的代码仅在linux中有效。我将让您尝试两种方法:

纯Groovy(适用于Windows和Linux):

config = readFile "settings.properties"
newconfig = a.replaceAll("browserName=.*","browserName=${BROWSER_NAME}")
writeFile file: "settings.properties", text: "${newconfig}"
使用powershell(仅在windows中)

警告:我既没有也没有访问基于Windows的Jenkins,因此我假设powershell版本可以工作。我基于此脚本博客

您不能使用“>>”,因为它会将数据附加到文件中。如果使用“>”,它将在插入回显之前擦除文件的所有内容

因此,必须使用sed命令。我认为您应该运行以下命令:

sh“sed-i的/browserName=.*/browserName=${BROWSER\u NAME}/g”settings.properties”

编辑:为windows添加了两种方法

我发送给您的代码仅在linux中有效。我将让您尝试两种方法:

纯Groovy(适用于Windows和Linux):

config = readFile "settings.properties"
newconfig = a.replaceAll("browserName=.*","browserName=${BROWSER_NAME}")
writeFile file: "settings.properties", text: "${newconfig}"
使用powershell(仅在windows中)


警告:我既没有也没有访问基于Windows的Jenkins,因此我假设powershell版本可以工作。我基于此脚本日志

在输入您的命令时,它正在抛出
“sh”未被识别为内部或外部命令、可操作程序或批处理文件错误
。你能为windows提供等效的命令吗?我已经编辑了groovy和powershell中包含的管道代码的答案。希望有帮助当我输入您的命令时,它会抛出
“sh”未被识别为内部或外部命令、可操作程序或批处理文件错误
。你能为windows提供等效的命令吗?我已经编辑了groovy和powershell中包含的管道代码的答案。希望能有帮助