我有一个批处理文件,它接收包含我要报告给TeamCity的多行注释(堆栈跟踪)的输入参数。下面的代码适用于单行注释,并从消息中删除括号和引号。问题是只有第一行多行消息被报告。在批处理文件中向TeamCity报告多行注释
rem Try to remove line breaks (not working)
setlocal EnableDelayedExpansion
SET message=%~1
set ^"message=!message:^
= !"
rem Remove square brackets and quotes
SET message=%message:[=%
SET message=%message:]=%
SET message=%message:'=%
rem Print message to console for TeamCity
echo ##teamcity[progressMessage '%message%']
有没有办法在echo语句之前删除所有换行符并将它们替换为空格?
仍然需要删除命令行invokation测试它(我得到的东西像'##的TeamCity [progressMessage“CMD \ C测试一个\ ntwo \ rthree ']',但这真的很酷!很高兴我不必使用它,但:-) +1从我这里! – marapet
@marapet你说得对,但是这需要一些关于调用名称的知识。因为它可以通过'cmd/c test.bat one-two-three'调用,但它也可以是'cmd/c test one-two-three'或者甚至是'cmd/c'/ path/space/test“一个 - 两个-three'。所以去除头部并不容易。 – jeb