这里面牵涉到变量延迟的问题,更多信息请阅读http://blog.sina.com.cn/s/blog_4ad042e50100oz0s.html
注意:
1. set variable=(这里等于号"="后面可以直接敲回车,这样的话就相当于设定的值为空)
2. 关于set "preitem=%%i" && echo !preitem!, 如果"preitem=%%i"去掉了双引号,那这里必须写为set preitem=%%i&& echo !preitem!,就是把这两者之间的空格去掉,不然会默认将空格也算为preItem的值。这里的好办法就是写为echo !preitem! && set preitem=%%i",因为这样的话后面都会直接敲回车或者加括号的,所以可以很好的避免将空格也算为preItem的值的情况。
@echo off
setlocal enabledelayedexpansion
set preitem=
for /f "tokens=1" %%i in (a.txt) do if not "!preitem!"=="%%i" (
set "preitem=%%i" && echo !preitem!
)
endlocal
more info:
http://hi.baidu.com/cjiabing/blog/item/76bc51b5fe79bec937d3ca46.html
http://hi.baidu.com/cjiabing/blog/item/728f2238c7412423b9998f65.html
http://hi.baidu.com/cjiabing/blog/item/cf26c711f6f98a17b8127b65.html