Board logo

标题: [文本处理] [已解决]BAT如何实现文件对比 [打印本页]

作者: 1270697389    时间: 2013-12-11 15:45     标题: [已解决]BAT如何实现文件对比

本帖最后由 1270697389 于 2013-12-13 18:43 编辑

文本1:
1.txt
aaa-***
bbb-***
ccc-***

文本2:
2.txt
aaa-***
bbb-***
ccc-***
ddd-***
结果:
(对比文件并找出前面3个字符不同的行)
3.txt
ddd
谢谢大家
作者: xxpinqz    时间: 2013-12-11 18:50

  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%a in ('findstr /vlg:1.txt 2.txt') do (
  3.     set "str=%%a"
  4.     echo,!str:~,3!
  5. ))>3.txt
复制代码

作者: lifei259    时间: 2013-12-11 19:09

  1. @echo off
  2. for /f "delims=-" %%a in ('findstr /vlg:1.txt 2.txt') do echo,%%a>>3.txt
  3. pause
复制代码

作者: 1270697389    时间: 2013-12-11 20:00

本帖最后由 1270697389 于 2013-12-12 18:08 编辑
xxpinqz 发表于 2013-12-11 18:50



    1.txt

映像名称
=========================
System
System
smss.exe
csrss.exe
wininit.exe
csrss.exe
services.exe
lsass.exe
lsm.exe
svchost.exe
winlogon.exe
nvvsvc.exe
svchost.exe
svchost.exe
svchost.exe
svchost.exe
ZhuDongFangYu.exe
svchost.exe
spoolsv.exe
svchost.exe
devmonsrv.exe
svchost.exe
EvtEng.exe
RegSrvc.exe
SamsungDeviceConfiguratio
svchost.exe
obexsrv.exe
wlanext.exe
conhost.exe
alg.exe
svchost.exe
unsecapp.exe
nvxdsync.exe
nvvsvc.exe
taskhost.exe
svchost.exe
dwm.exe
explorer.exe
rundll32.exe
360tray.exe
360sd.exe
dllhost.exe
nvtray.exe
360rp.exe
SearchIndexer.exe
dmhkcore.exe
SoftMgrLite.exe
igfxext.exe
igfxsrvc.exe
CommonAgent.exe
CLMLSvc.exe
Media+Player10Serv.exe
hkcmd.exe
igfxpers.exe
BTHSAmpPalService.exe
BTHSSecurityMgr.exe
LMS.exe
SWMAgent.exe
svchost.exe
WLIDSVC.EXE
WLIDSVCM.EXE
UNS.exe
svchost.exe
audiodg.exe
SGImeGuard.exe
KuGou.exe
taskmgr.exe
wuauclt.exe
Client.exe
TenioDL.exe
Tencentdl.exe
svchost.exe
taskeng.exe
svchost.exe
SearchProtocolHost.exe
SearchFilterHost.exe
EasySpeedUpManager.exe
YCMMirage.exe
MovieColorEnhancer.exe
SCCSpeedBoot.exe
WmiPrvSE.exe
cmd.exe
conhost.exe
tasklist.exe

2.txt

映像名称
=========================
System
System
smss.exe
csrss.exe
wininit.exe
csrss.exe
services.exe
lsass.exe
lsm.exe
svchost.exe
winlogon.exe
nvvsvc.exe
svchost.exe
svchost.exe
svchost.exe
svchost.exe
ZhuDongFangYu.exe
svchost.exe
spoolsv.exe
svchost.exe
devmonsrv.exe
svchost.exe
EvtEng.exe
RegSrvc.exe
SamsungDeviceConfiguratio
svchost.exe
obexsrv.exe
wlanext.exe
conhost.exe
alg.exe
svchost.exe
unsecapp.exe
nvxdsync.exe
nvvsvc.exe
taskhost.exe
svchost.exe
dwm.exe
explorer.exe
rundll32.exe
360tray.exe
360sd.exe
dllhost.exe
nvtray.exe
360rp.exe
SearchIndexer.exe
dmhkcore.exe
SoftMgrLite.exe
igfxext.exe
igfxsrvc.exe
CommonAgent.exe
CLMLSvc.exe
Media+Player10Serv.exe
hkcmd.exe
igfxpers.exe
BTHSAmpPalService.exe
BTHSSecurityMgr.exe
LMS.exe
SWMAgent.exe
svchost.exe
WLIDSVC.EXE
WLIDSVCM.EXE
UNS.exe
svchost.exe
audiodg.exe
SGImeGuard.exe
KuGou.exe
taskmgr.exe
wuauclt.exe
Client.exe
TenioDL.exe
Tencentdl.exe
svchost.exe
taskeng.exe
svchost.exe
SearchProtocolHost.exe
SearchFilterHost.exe
EasySpeedUpManager.exe
YCMMirage.exe
MovieColorEnhancer.exe
SCCSpeedBoot.exe
dllhost.exe
WmiPrvSE.exe
cmd.exe
conhost.exe
tasklist.exe

你的代码我试了,少量的没问题,到这里就不行了,有什么办法解决吗?谢谢你!
两个文件只有红色的那个不一样,用对比找出来。谢谢!
作者: lansemouzi    时间: 2013-12-12 14:12

本帖最后由 lansemouzi 于 2013-12-12 14:15 编辑

回复 3# lifei259
echo 是显示的意思 这个我知道 但是echo, 是什么呢? 没有见过 ,本人很菜 望知道 谢谢
作者: gwsbhqt    时间: 2013-12-12 14:59

回复 5# lansemouzi
    在那个情况下可以当空格用
作者: xxpinqz    时间: 2013-12-12 16:54

回复 4# 1270697389
看不懂你说什么,什么不行,让我猜吗?
作者: 1270697389    时间: 2013-12-12 18:05

回复  1270697389
看不懂你说什么,什么不行,让我猜吗?
xxpinqz 发表于 2013-12-12 16:54



   我 有两个从进程里面导出来的txt文本,里面有正在运行的程序列表,我就是想对比刚起动是的进程列表和电脑反应慢、卡的时候的进程列表,   找出多余的程序进程,我再把它kill掉。由于进程列表数据太多,看不过来。谢谢!
作者: xxpinqz    时间: 2013-12-13 07:59

回复 8# 1270697389
这和1楼要求有什么关系啊
  1. fc 1.txt 2.txt
复制代码

作者: 1270697389    时间: 2013-12-13 08:00

回复  1270697389
这和1楼要求有什么关系啊
xxpinqz 发表于 2013-12-13 07:59


谢谢你
作者: 1270697389    时间: 2013-12-13 12:31

  1. @echo off&setlocal
  2. set f1=a.txt
  3. set f2=b.txt
  4. set f3=c.txt
  5. copy nul %f3%
  6. for /f "tokens=1 delims=," %%i in (%f2%)do set "%%i=y"
  7. for /f "tokens=1,2 delims=," %%m in (%f1%)do (
  8. if defined %%m (set "%%m=")else echo.%%m,%%n>>%f3%)
  9. for /f "tokens=1,2 delims=," %%i in (%f2%)do (
  10. if defined %%i echo.%%i,%%j >>%f3%)
  11. start %f3%
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2