第一个跑后面是因为你的代码有个小错误,显示结果只不过是乱打正着。批处理预处理的时候你的f定义"set f=%f:+=&echo %" 被解释为“set f=d_q 973 & echo c_j 314........”所以你的显示结果其实是从这一句就开始了,而不是最后一个命令%f%。最后一个%f%其实显示的就是第一节。
整个代码如果要完美应该改成 | @echo off | | set /p f=<1.txt | | set f=%f:-=+% | | set f=%f:+=^&echo % | | echo %f% | | pauseCOPY |
这样的话&可以在最后一个echo的时候经过预处理解释成连接符,而不会在第三句的时候就被解释成连接符。 |