jenkins 正在分析“”-无法识别的转义序列\T

4szc88ey  于 2023-02-15  发布在  Jenkins
关注(0)|答案(1)|浏览(150)

我正在尝试修改.config文件。此行代码仅用于在此文件和其他少数文件中使用来自xml文件的新代码进行复制,但这将在代码中稍后进行,目前我对此行有问题,因为我无法将其传递给变量,使其被视为常规字符串,不会以任何方式对其进行更改,也不会引发“Parsing“”-无法识别的转义序列\T”异常
如果我不需要在里面使用变量,我一直都是这样做的:

$oldValueSU = '<add key="splunk_username" value="${(splunk_username=D:\Tools\localtokens.xml)}"/>'

我也是这样尝试的

$oldValueSU = "<add key=""splunk_username"" value='`${(splunk_username=D:\Tools\localtokens.xml)}'/>"

这些选项都不起作用我仍然收到错误“parsing“[上面提供的路径]”- Unrecognized escape sequence \T”。

**脚本如何工作:**脚本的工作方式是,它获取该变量并查看整个文件,以便找到其中一个匹配项,然后获取该文件的路径并将其添加到其他变量,然后将其值更改为不同的字符串。

如果需要更多信息,我很乐意提供

pkwftd7m

pkwftd7m1#

好的,我在代码中找到了问题和解决方案
尝试检查文件内容是否与给定字符串匹配时出现问题

if (($file -match $oldValueSU) -and ($file -match $oldValueSP))

它使用的是-match,其中使用了Regex,这导致了我将其更改为:

if (($file -like "*$oldValueSU*") -and ($file -like "*$oldValueSP*"))

之后,在我的代码中使用-replace的部分(也使用了Regex):

$fileContentPathTemp -replace "*$oldValueSU*", $newValueSU

我把它改成了.Replace,它直接作用于String,解决了这个问题:

$fileContentPathTemp.Replace($oldValueSU,$newValueSU)

所以整个问题都是基于使用Regex,这个解决方案更像是一个根本不使用它的变通方案

我希望这个解决方案能在将来帮助到一些人,我很抱歉没有在开始的时候提供所有必要的信息。谢谢大家花时间在我的问题上

相关问题