Powershell 替换引号之间的值

Powershell 替换引号之间的值,powershell,powershell-4.0,Powershell,Powershell 4.0,我正在尝试更新web.config文件,使用Jenkins的PowerShell插件更新以下值: 其中,这些值是buildstep的Jenkins环境的输入。 例如,SmtpServer1的输入值为“mail.outbound.xxx.com”(不带引号),UserID的输入值为“SteveH” 我尝试的是使用Jenkins Windows PowerShell构建步骤: $SmtpServer1=“$ENV:SmtpServer1” $UserID=“$ENV:UserID” $filen

我正在尝试更新
web.config
文件,使用Jenkins的PowerShell插件更新以下值:


其中,这些值是buildstep的Jenkins环境的输入。 例如,SmtpServer1的输入值为“mail.outbound.xxx.com”(不带引号),UserID的输入值为“SteveH”

我尝试的是使用Jenkins Windows PowerShell构建步骤:

$SmtpServer1=“$ENV:SmtpServer1”
$UserID=“$ENV:UserID”
$filename=“.\web.config”
(获取内容“$filename”).Replace(“${SmtpServer1}”,“$SmtpServer1”)|
设置内容“$filename”
(获取内容“$filename”).Replace(“${UserID}”,“$UserID”)|
设置内容“$filename”
但结果是:


我想得到的是:



有什么方向或想法吗?

对不起,打字错误已经更新了。你能用
Write host
打印变量并显示数据吗?代码乍一看是正常的。也许环境变量没有被拉出来?您有名为SmtpServer1和UserID的环境变量?因此,在对其进行了一些调整后,我使用以下命令使其工作:“(获取内容“$filename”).replace(“${SmtpServer1}”,“$SmtpServer1”)|设置内容“$filename”`在单引号内添加了双引号。我不明白这是如何解决问题的,因为看起来您匹配正确,但没有替换。现在,通过在评论中添加的内容,您还可以匹配一些引用。我很高兴你找到了答案。你考虑过用xpath代替正则表达式吗?对不起,输入错误已经更新了。你能用
Write host
打印变量并显示数据吗?代码乍一看是正常的。也许环境变量没有被拉出来?您有名为SmtpServer1和UserID的环境变量?因此,在对其进行了一些调整后,我使用以下命令使其工作:“(获取内容“$filename”).replace(“${SmtpServer1}”,“$SmtpServer1”)|设置内容“$filename”`在单引号内添加了双引号。我不明白这是如何解决问题的,因为看起来您匹配正确,但没有替换。现在,通过在评论中添加的内容,您还可以匹配一些引用。我很高兴你找到了答案。你考虑过用xpath代替正则表达式吗?