这看起来很简单,但我很困惑 - 一直在搜索许多几乎匹配的问题,但却无法找到答案。
我想做的就是这样:
echo c:\another\test\file.h(22,11) : warning 123: this is a test warning
但是这会产生错误:: was unexpected at this time
。
所以我试过了:
echo "c:\another\test\file.h(22,11) : warning 123: this is a test warning"
产生:"c:\another\test\file.h(22,11) : warning 123: this is a test warning"
。但我不想要报价。所以我尝试使用转义字符" ^":
echo c^:\another\test\file.h(22,11) ^: warning 123^: this is a test warning
但这没有效果。我怎样才能做到这一点?
更新
这行代码在if块中,这似乎有所不同!:
if exist "somefile" (
echo c:\another\test\file.h(22,11) : warning 123: this is a test warning
)
答案 0 :(得分:5)
我相信你的命令行放在一个paranthesised的代码块中,例如:
if exist "c:\another\test\file.h" (
echo c:\another\test\file.h(22,11) : warning 123: this is a test warning
)
因此)
命令行中的结束echo
被解释为整个块的结束,将: warning 123: this is a test warning
部分保留为无效的命令行。
要解决此问题,您需要在)
前面转义^
cmd
,这是if exist "c:\another\test\file.h" (
echo c:\another\test\file.h(22,11^) : warning 123: this is a test warning
)
的转义字符:
:
因此warning: ...
前面的冒号{{1}}实际上并没有引起问题。