批处理echo|set/p=命令输出行尾出现多余空格的问题排查与解决问询
批处理
echo|set/p=无换行输出末尾多余空格的问题 空格来源
这个多余空格是CMD管道机制导致的:当你执行echo|set/p=TEST时,echo命令未指定输出内容,默认会输出一个空行(回车+换行),管道传递这个空行给set/p时,CMD的管道处理逻辑会在传递的内容末尾额外添加一个空格,最终这个空格会被附加到set/p输出的TEST后面。
移除方法
直接换用更可靠的无换行输出写法,完全避免管道带来的问题:
- 使用
set/p结合<nul的方式:
这种写法不会产生多余空格,也不会添加回车换行符。set/p="TEST"<nul>>TEST.TXT - 如果一定要用管道写法,需要避免
echo输出空行,改成用echo(输出空内容(注意echo(后面无空格):(echo()|set/p=TEST>>TEST.TXT
内容的提问来源于stack exchange,提问作者WeirdGuy
相关产品推荐
相关产品推荐

