Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用包含引号和等号的字符串从TeamCity调用Ant ReplaceRegexp_Regex_Ant_Teamcity - Fatal编程技术网

使用包含引号和等号的字符串从TeamCity调用Ant ReplaceRegexp

使用包含引号和等号的字符串从TeamCity调用Ant ReplaceRegexp,regex,ant,teamcity,Regex,Ant,Teamcity,我有一个Ant文件,其中包含TeamCity配置使用的目标。我为此定义了一个使用replaceregexp的目标: 我需要替换targetfile中已经包含一组双引号的字符串;具体来说,我需要将minlevel=“Trace”替换为minlevel=“Warn”。在TeamCity中,我使用以下命令调用Antfile: -Doriginalstring=minlevel=“跟踪” -Dupdatedstring=minlevel=“警告” 但它忽略了双引号。 我肯定有一些我不理解的转义字符

我有一个Ant文件,其中包含TeamCity配置使用的目标。我为此定义了一个使用replaceregexp的目标:


我需要替换targetfile中已经包含一组双引号的字符串;具体来说,我需要将minlevel=“Trace”替换为minlevel=“Warn”。在TeamCity中,我使用以下命令调用Antfile:

-Doriginalstring=minlevel=“跟踪” -Dupdatedstring=minlevel=“警告”

但它忽略了双引号。 我肯定有一些我不理解的转义字符组合。 TeamCity的正确称呼方式是什么?
谢谢-

尝试用双引号括起属性值,并用反斜杠转义文字引号

-Doriginalstring=“minlevel=\”Trace\“”-Dupdatedstring=“minlevel=\”Warn\“”

类似地,对于包含空格的值:

-Doriginalstring=“minlevel=\”Trace\”db=”M1Auth\”-Dupdatedstring=“minlevel=”Warn\”db=”M1Auth\”


另一种解决方案是将属性保存在文件中,并通过
-propertyfile
将其传递给
ant
命令(请参阅任务和)。

谢谢,这完全符合我的需要。现在我有第二个相关问题。我需要更新的另一个字符串有一个嵌入的空格:
-Doriginalstring=minlevel=“Trace”db=“M1Auth”-Dupdatedstring=minlevel=“Warn”db=“M1Auth”
我试图用反斜杠转义空格,但它仍然被视为两个独立的参数。有什么建议吗?@TomT这是同样的想法(答案更新)。你需要把整个值(包括空格)都用外引号括起来,当然还要对内引号进行转义,这就是我之前的想法和尝试。然而,嵌入的空间被认为是一个新的蚂蚁目标被引用的迹象。下面是我要传递的内容:
-Doriginalstring=“minlevel=\”Trace\“writeTo=”AuthLogDb\”-Dupdatedstring=“minlevel=\”Warn\“writeTo=”AuthLogDb\”
,下面是TeamCity所说的:
Target“writeTo=”AuthLogDb““项目中不存在任何洞察?我非常感谢你的帮助!我不知道TeamCity配置如何调用
ant
,以及
ant
可执行文件如何准确处理这些属性值,但您可以尝试的一件事是从文件传递属性。
  <replaceregexp
      file="${targetfile}"
      match="${originalstring}"
      replace="${updatedstring}"
      byline="true"
  />