![Rank: 8](images/default/star_level3.gif) ![Rank: 8](images/default/star_level3.gif)
- 帖子
- 6388
- 积分
- 18837
- 技术
- 980
- 捐助
- 100
- 注册时间
- 2010-10-9
|
本帖最后由 zm900612 于 2011-5-17 21:56 编辑
cmd进行预处理的时候,会将重定向挪到语句末尾,并在其后加上空格,若使用默认句柄1或0而未标明,则也会自动补足。而连接符&、&&、|、||在预处理的时候也会在前后各加一个空格(如果原先不存在),这样echo.>>%file%|echo %dat%>>%file%实际上是
“echo. 1>>1.txt | echo asdfawefasfasdfasdf 1>>1.txt ”
这时候因为第一句echo不存在除重定向与空格之外的字符,所以大概是被划分成“echo. 1>>1.txt ”而就输出了空格吧
解决方法,为echo加上括号,或者干脆不要用连接符
顺便一提,楼主如果用&我还可以理解,为什么重定向之后还要用通道呢?重定向是在通道之后被预处理的,也就是说,重定向比通道优先级高,使用了重定向,通道是没有作用的 |
-
1
评分人数
-
|