[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 69# Hello123World


    因为回车换行占两个字符
1

评分人数

TOP

  1. (echo TestStr&echo.)|findstr /o ".*">a.txt
复制代码
打开回显,一目了然。这句中之所以多出来一个空格,原因是预处理时语句被重组成“规范”的格式:
  1. (echo TestStr  & echo.)  | findstr /o ".*"
复制代码
做了如下一组实验:
  1. rem>nul 3>test.txt
  2. echo TestStr
  3. echo TestStr&echo.
  4. (echo TestStr&echo.)
  5. (echo TestStr&echo.)|findstr /o ".*"
  6. test.txt
复制代码
可见 echo TestStr 时,cmd 为其后缀一个仅在预处理中有效的空格,而 & 号又为自身前后添加一个空格。当管道中出现语块或者存在内部命令时,管道前的内容将作为参数交给新的 cmd 进程,此时原本只存在于预处理中的空格也许因为被新的 cmd 进程误认为是 echo 命令的参数而非分隔符显示出来。

TOP

返回列表