Windows批处理用^拆分echo命令行报错,如何排查解决?
Windows批处理续行符使用错误分析
你的问题出在续行符^被放在了引号内部——Windows批处理中,当^处于引号包裹的字符串内时,会失去续行功能,被当作普通的脱字符处理。
此时你的代码会被解析成两步:
- 执行
echo "Hello ^,输出"Hello ^ - 下一行的
my name is Florian"被当成独立命令,系统找不到my命令,因此报错。
正确写法
要实现跨多行输出连续字符串,需将续行符^放在引号外部,且确保^是该行的最后一个字符(后面不能有空格或其他隐藏字符):
写法1(保留完整引号)
@echo off echo "Hello" echo "Hello my name is ^ Florian"
写法2(拆分引号续行)
@echo off echo "Hello" echo "Hello" ^ " my name is Florian"
写法3(不带引号)
@echo off echo "Hello" echo Hello ^ my name is Florian
以上写法都能输出预期的连续字符串。
内容的提问来源于stack exchange,提问作者flori10
相关产品推荐
相关产品推荐

