比较是以行为单位,可以使用外部命令.作者: ZJHJ 时间: 2009-11-25 21:43 cd.>bh.txt
for /f "delims=" %%i in (a.txt) do SET %%i=A
for /f "delims=" %%j in (b.txt) do if /I not defined %%j echo %%j>>bh.txt
-------------------
cd.>bh.txt
for /f "delims=" %%i in (a.txt) do SET %%i=A
for /f "delims=" %%j in (b.txt) do if /I defined %%j echo %%j>>bh.txt作者: lxmxn 时间: 2009-11-26 03:13
Originally posted by ZJHJ at 2009-11-27 21:13:
2楼的您不会 用啊
,
谢谢您的回复,不过,请问,您试过有效了吗>>>???作者: HAT 时间: 2009-11-28 01:19 标题: Re 6楼
测试之前,需要自己去下载一个grep.exe作者: honcho 时间: 2009-11-28 12:28 @echo off
cd.>a-b.txt
cd.>b-a.txt
cd.>a~b.txt
for /f "delims=" %%i in (a.txt) do (
findstr /i "%%i" b.txt > nul || echo %%i>>a-b.txt
)
for /f "delims=" %%i in (b.txt) do (
findstr /i "%%i" a.txt > nul || echo %%i>>b-a.txt
)
for /f "delims=" %%i in (a.txt) do (
findstr /i "%%i" b.txt > nul && echo %%i>>a~b.txt
)
pause作者: junyee 时间: 2009-11-28 12:41
Quote:
Originally posted by honcho at 2009-11-28 12:28:
@echo off
cd.>a-b.txt
cd.>b-a.txt
cd.>a~b.txt
for /f "delims=" %%i in (a.txt) do (
findstr /i "%%i" b.txt > nul || echo %%i>>a-b.txt
)
for /f "deli ...
Originally posted by junyee at 2009-11-27 23:21:
,
谢谢您的回复,不过,请问,您试过有效了吗>>>???
是你实在太太.......不会了.....
setlocal EnableDelayedExpansion
cd.>1.txt
for /f "delims=" %%i in (b.txt) do SET %%i=A
for /f "delims=" %%j in (a.txt) do if /I not defined %%j echo %%j>>1.txt
endlocal EnableDelayedExpansion
cd.>2.txt
for /f "delims=" %%i in (a.txt) do SET %%i=A
for /f "delims=" %%j in (b.txt) do if /I not defined %%j echo %%j>>2.txt
setlocal
cd.>3.txt
for /f "delims=" %%i in (a.txt) do SET %%i=A
for /f "delims=" %%j in (b.txt) do if /I defined %%j echo %%j>>3.txt
处理你的文件只要0.07秒
比第 8 楼的代码效率快26.7倍
[ Last edited by ZJHJ on 2009-11-28 at 22:01 ]作者: honcho 时间: 2009-11-29 01:32
Quote:
Originally posted by ZJHJ at 2009-11-28 21:30:
是你实在太太.......不会了.....
setlocal EnableDelayedExpansion
cd.>1.txt
for /f "delims=" %%i in (b.txt) do SET %%i=A
for /f "delims=" %%j in (a.txt) do if ...
很赞同,此法效率极高。
另:本着最简优效的原则,
第三个环境无须改变即可。
setlocal
cd.>1.txt
for /f "delims=" %%i in (b.txt) do SET %%i=A
for /f "delims=" %%j in (a.txt) do if /I not defined %%j echo %%j>>1.txt
endlocal
cd.>2.txt
cd.>3.txt
for /f "delims=" %%i in (a.txt) do SET %%i=A
for /f "delims=" %%j in (b.txt) do if /I not defined %%j (echo %%j>>2.txt) else (echo %%j>>3.txt)作者: junyee 时间: 2010-2-1 22:47 谢谢楼上诸位。
上述三种方法都是可行的。
findstr 这个我能看懂,可是执行效率似乎低了些,处理10K的文本要近20秒。
grep 这个需要第三方程序,并且,文本不能太大,到几K的时候程序就会报错。
10/11Floor 这个很神奇,可是我看不明白呀,能不能帮忙解释一下这个用法??。