标题: [已解决]如何作出两个文本文件的比较?
[打印本页]
作者: gcdj
时间: 2010-11-25 08:09
标题: [已解决]如何作出两个文本文件的比较?
有二个文本文件(A.TXT)内容如下
C508
C50D
C511
E1E9
C517
E1E0
C548
C54C
另一个文本文件为B.TXT内容如下
C508 =>diversity(OK)
C50D =>DAB(OK)
C511 =>antenna(OK)
E1E9 =>front (OK)
C517 =>GPSOK)
E1E0 =>W(OK)
C548 =>99(OK)
C54C =>KK(OK)
9820 =>de(OK)
8r9fV =>ae(NG)
要求实行批处理后在A.TXT的文件变为
C508
C50D
C511
E1E9
C517
E1E0
C548
C54C
C508 =>diversity(OK)
C50D =>DAB(OK)
C511 =>antenna(OK)
E1E9 =>front (OK)
C517 =>GPSOK)
E1E0 =>W(OK)
C548 =>99(OK)
C54C =>KK(OK)
[
Last edited by gcdj on 2010-12-2 at 07:44 ]
作者: wewebb
时间: 2010-11-25 12:24
@echo off
(echo.&echo.
(for /f %%a in (a.txt) do (
for /f "tokens=1*" %%x in (b.txt) do if "%%a" == "%%x" echo %%x %%y
)
) ) > tmp.txt
type tmp.txt >> a.txt & del tmp.txt
a.txt
[
Last edited by wewebb on 2010-11-26 at 13:52 ]
作者: meteormiao
时间: 2010-11-25 21:43
置顶帖里有,真的,一模一样的问题
作者: gcdj
时间: 2010-11-26 07:41
Quote: |
Originally posted by meteormiao at 2010-11-25 21:43:
置顶帖里有,真的,一模一样的问题 |
|
在哪里呀?
能贴上来吗?
谢谢!
作者: gcdj
时间: 2010-11-26 07:44
Quote: |
Originally posted by wewebb at 2010-11-25 12:24:
[code]
(for /f %%a in (a.txt) do (
for /f "tokens=1*" %%x in (b.txt) do if "%%a" == "%%x" echo %%x %%y )
echo.&echo.) > tmp.txt
type tmp.txt >> a.t ... |
|
谢谢你!
这个实行之后a.txt变成下面的文件.我不想输出文件的录经.
而且每一行都比较了5次这是为什么?
C508
C50D
C511
E1E9
C517
E1E0
C548
C54C
Z:\work1>(for /F "tokens=1*" %x in (b.txt) do if "C508" == "%x" echo %x %y )
Z:\work1>if "C508" == "C508" echo C508 =>diversity(OK)
C508 =>diversity(OK)
Z:\work1>if "C508" == "C50D" echo C50D =>DAB(OK)
Z:\work1>if "C508" == "C511" echo C511 =>antenna(OK)
Z:\work1>if "C508" == "E1E9" echo E1E9 =>front (OK)
Z:\work1>if "C508" == "C517" echo C517 =>GPSOK)
Z:\work1>if "C508" == "E1E0" echo E1E0 =>W(OK)
Z:\work1>if "C508" == "C548" echo C548 =>99(OK)
Z:\work1>if "C508" == "C54C" echo C54C =>KK(OK)
Z:\work1>if "C508" == "9820" echo 9820 =>de(OK)
Z:\work1>if "C508" == "8r9fV" echo 8r9fV =>ae(NG)
Z:\work1>(for /F "tokens=1*" %x in (b.txt) do if "C50D" == "%x" echo %x %y )
Z:\work1>if "C50D" == "C508" echo C508 =>diversity(OK)
Z:\work1>if "C50D" == "C50D" echo C50D =>DAB(OK)
C50D =>DAB(OK)
Z:\work1>if "C50D" == "C511" echo C511 =>antenna(OK)
Z:\work1>if "C50D" == "E1E9" echo E1E9 =>front (OK)
Z:\work1>if "C50D" == "C517" echo C517 =>GPSOK)
Z:\work1>if "C50D" == "E1E0" echo E1E0 =>W(OK)
Z:\work1>if "C50D" == "C548" echo C548 =>99(OK)
Z:\work1>if "C50D" == "C54C" echo C54C =>KK(OK)
Z:\work1>if "C50D" == "9820" echo 9820 =>de(OK)
Z:\work1>if "C50D" == "8r9fV" echo 8r9fV =>ae(NG)
Z:\work1>(for /F "tokens=1*" %x in (b.txt) do if "C511" == "%x" echo %x %y )
Z:\work1>if "C511" == "C508" echo C508 =>diversity(OK)
Z:\work1>if "C511" == "C50D" echo C50D =>DAB(OK)
Z:\work1>if "C511" == "C511" echo C511 =>antenna(OK)
C511 =>antenna(OK)
Z:\work1>if "C511" == "E1E9" echo E1E9 =>front (OK)
Z:\work1>if "C511" == "C517" echo C517 =>GPSOK)
Z:\work1>if "C511" == "E1E0" echo E1E0 =>W(OK)
Z:\work1>if "C511" == "C548" echo C548 =>99(OK)
Z:\work1>if "C511" == "C54C" echo C54C =>KK(OK)
Z:\work1>if "C511" == "9820" echo 9820 =>de(OK)
Z:\work1>if "C511" == "8r9fV" echo 8r9fV =>ae(NG)
Z:\work1>(for /F "tokens=1*" %x in (b.txt) do if "E1E9" == "%x" echo %x %y )
Z:\work1>if "E1E9" == "C508" echo C508 =>diversity(OK)
Z:\work1>if "E1E9" == "C50D" echo C50D =>DAB(OK)
Z:\work1>if "E1E9" == "C511" echo C511 =>antenna(OK)
Z:\work1>if "E1E9" == "E1E9" echo E1E9 =>front (OK)
E1E9 =>front (OK)
Z:\work1>if "E1E9" == "C517" echo C517 =>GPSOK)
Z:\work1>if "E1E9" == "E1E0" echo E1E0 =>W(OK)
Z:\work1>if "E1E9" == "C548" echo C548 =>99(OK)
Z:\work1>if "E1E9" == "C54C" echo C54C =>KK(OK)
Z:\work1>if "E1E9" == "9820" echo 9820 =>de(OK)
Z:\work1>if "E1E9" == "8r9fV" echo 8r9fV =>ae(NG)
Z:\work1>(for /F "tokens=1*" %x in (b.txt) do if "C517" == "%x" echo %x %y )
Z:\work1>if "C517" == "C508" echo C508 =>diversity(OK)
Z:\work1>if "C517" == "C50D" echo C50D =>DAB(OK)
Z:\work1>if "C517" == "C511" echo C511 =>antenna(OK)
Z:\work1>if "C517" == "E1E9" echo E1E9 =>front (OK)
Z:\work1>if "C517" == "C517" echo C517 =>GPSOK)
C517 =>GPSOK)
Z:\work1>if "C517" == "E1E0" echo E1E0 =>W(OK)
Z:\work1>if "C517" == "C548" echo C548 =>99(OK)
Z:\work1>if "C517" == "C54C" echo C54C =>KK(OK)
Z:\work1>if "C517" == "9820" echo 9820 =>de(OK)
Z:\work1>if "C517" == "8r9fV" echo 8r9fV =>ae(NG)
Z:\work1>(for /F "tokens=1*" %x in (b.txt) do if "E1E0" == "%x" echo %x %y )
Z:\work1>if "E1E0" == "C508" echo C508 =>diversity(OK)
Z:\work1>if "E1E0" == "C50D" echo C50D =>DAB(OK)
Z:\work1>if "E1E0" == "C511" echo C511 =>antenna(OK)
Z:\work1>if "E1E0" == "E1E9" echo E1E9 =>front (OK)
Z:\work1>if "E1E0" == "C517" echo C517 =>GPSOK)
Z:\work1>if "E1E0" == "E1E0" echo E1E0 =>W(OK)
E1E0 =>W(OK)
Z:\work1>if "E1E0" == "C548" echo C548 =>99(OK)
Z:\work1>if "E1E0" == "C54C" echo C54C =>KK(OK)
Z:\work1>if "E1E0" == "9820" echo 9820 =>de(OK)
Z:\work1>if "E1E0" == "8r9fV" echo 8r9fV =>ae(NG)
Z:\work1>(for /F "tokens=1*" %x in (b.txt) do if "C548" == "%x" echo %x %y )
Z:\work1>if "C548" == "C508" echo C508 =>diversity(OK)
Z:\work1>if "C548" == "C50D" echo C50D =>DAB(OK)
Z:\work1>if "C548" == "C511" echo C511 =>antenna(OK)
Z:\work1>if "C548" == "E1E9" echo E1E9 =>front (OK)
Z:\work1>if "C548" == "C517" echo C517 =>GPSOK)
Z:\work1>if "C548" == "E1E0" echo E1E0 =>W(OK)
Z:\work1>if "C548" == "C548" echo C548 =>99(OK)
C548 =>99(OK)
Z:\work1>if "C548" == "C54C" echo C54C =>KK(OK)
Z:\work1>if "C548" == "9820" echo 9820 =>de(OK)
Z:\work1>if "C548" == "8r9fV" echo 8r9fV =>ae(NG)
Z:\work1>(for /F "tokens=1*" %x in (b.txt) do if "C54C" == "%x" echo %x %y )
Z:\work1>if "C54C" == "C508" echo C508 =>diversity(OK)
Z:\work1>if "C54C" == "C50D" echo C50D =>DAB(OK)
Z:\work1>if "C54C" == "C511" echo C511 =>antenna(OK)
Z:\work1>if "C54C" == "E1E9" echo E1E9 =>front (OK)
Z:\work1>if "C54C" == "C517" echo C517 =>GPSOK)
Z:\work1>if "C54C" == "E1E0" echo E1E0 =>W(OK)
Z:\work1>if "C54C" == "C548" echo C548 =>99(OK)
Z:\work1>if "C54C" == "C54C" echo C54C =>KK(OK)
C54C =>KK(OK)
Z:\work1>if "C54C" == "9820" echo 9820 =>de(OK)
Z:\work1>if "C54C" == "8r9fV" echo 8r9fV =>ae(NG)
作者: gcdj
时间: 2010-11-26 08:04
@echo off
if exist 1.txt del 1.txt
for /f "delims=: tokens=1*" %%a in (a.txt) do (
for /f "delims=" %%_ in ('findstr "%%a" b.txt') do (
if NOT "%%a:%%b"=="%%_" >>1.txt echo %%_
)
)
start 1.txt
作者: wewebb
时间: 2010-11-26 13:48
Quote: |
Originally posted by gcdj at 2010-11-26 07:44:
这个实行之后a.txt变成下面的文件.我不想输出文件的录经.
而且每一行都比较了5次这是为什么?
... |
|
不好意思。
复制代码的时候在上面漏了一行: @echo off 。
现在重新编辑好了。
[
Last edited by wewebb on 2010-11-26 at 13:50 ]
作者: gcdj
时间: 2010-12-1 07:51
Quote: |
Originally posted by wewebb at 2010-11-26 13:48:
不好意思。
复制代码的时候在上面漏了一行: @echo off 。
现在重新编辑好了。
[ Last edited by wewebb on 2010-11-26 at 13:50 ] |
|
谢谢!
能否在加一个功能!
就是如果A文件里有的,B文件里没有的能否加上注释什么的?
作者: Hanyeguxing
时间: 2010-12-1 09:40
Quote: |
Originally posted by gcdj at 2010-12-1 07:51:
谢谢!
能否在加一个功能!
就是如果A文件里有的,B文件里没有的能否加上注释什么的? |
|
没有说明在什么位置加注释,怎么加。。。
@echo off
for /f %%a in (A.txt) do set #%%a==
(echo/&echo/
for /f "tokens=1*" %%a in (B.txt) do if defined #%%a set #%%a=&echo %%a %%b)>tmp_1.txt
(for /f %%a in (A.txt) do if defined #%%a (echo %%a;仅A.txt有) else echo %%a)>tmp_2.txt
copy /b tmp_2.txt+tmp_1.txt A.txt>nul
del /q tmp_*
这里将注释加在上半部分
[
Last edited by Hanyeguxing on 2010-12-1 at 09:44 ]
作者: wewebb
时间: 2010-12-1 11:23
LS 以“#变量名” 作为 “比较字符串” 的思路很好。呵呵。
作者: Hanyeguxing
时间: 2010-12-1 13:14
@echo off
(
for /f "tokens=1*" %%a in (B.txt) do set #%%a==
for /f %%a in (A.txt) do if defined #%%a (echo %%a) else echo %%a;仅A.txt有
echo/&echo/
findstr /b /g:A.txt B.txt 2>nul
)>tmp.txt
del /q A.txt
ren tmp.txt A.txt
作者: gcdj
时间: 2010-12-2 07:43
Quote: |
Originally posted by Hanyeguxing at 2010-12-1 13:14:
[code]@echo off
(
for /f "tokens=1*" %%a in (B.txt) do set #%%a==
for /f %%a in (A.txt) do if defined #%%a (echo %%a) else echo %%a;仅A.txt有
echo/&echo/
findstr /b /g:A.txt B. ... |
|
问题已解决!谢谢!!
作者: acaigg
时间: 2010-12-25 12:38
只有学习的份