我有一个字符串如下,虽然它到达冒号时会抛出一个错误,我用@来逃避一切:
string vmListCommand = @"vim-cmd vmsvc/getallvms | sed '1d' | awk '{if ($1 > 0) print $1":"$2}'";
答案 0 :(得分:3)
删除@
并使用\
转义双引号:
string vmListCommand = "vim-cmd vmsvc/getallvms | sed '1d' | awk '{if ($1 > 0) print $1\":\"$2}'";
您写道:
我用@来逃避一切
@
用于更改逃避行为,而不是逃避一切。如果字符串以@
为前缀,则忽略转义序列(\
)。
答案 1 :(得分:1)
在字符串中使用\
进行转义。
示例:
string str1 ="hello\\";
答案 2 :(得分:1)
您需要删除文字并转义
string vmListCommand = "vim-cmd vmsvc/getallvms | sed '1d' | awk '{if ($1 > 0) print $1\":\"$2}'";
答案 3 :(得分:1)
有一个字符需要在文字字符串中进行转义。双引号"
。如果你没有逃避它,编译器将如何知道哪个"
是字符串的一部分,哪个终止字符串?
要转义文字字符串中的"
,只需加倍:
@"vim-cmd vmsvc/getallvms | sed '1d' | awk '{if ($1 > 0) print $1"":""$2}'"
或者,您可以切换到普通字符串语法,并使用\
转义。