请教一个文本处理的批处理或者VBS程序

假设a.txt的内容为:0#0;1#1;2#2;3#3;...(每行都是这种格式,用#分成前后两部分内容)b.txt的内容为:2#a;3#b;4#c;...a的每一行和b... 假设a.txt的内容为:
0#0;
1#1;
2#2;
3#3;
...(每行都是这种格式,用#分成前后两部分内容)
b.txt的内容为:
2#a;
3#b;
4#c;
...
a的每一行和b对比,规则为:只比对#前面相同的部分,如果b中不存在,则输出到c.txt
即输出内容为:

0#0;
1#1;
4#4;

可以用批处理命令或者VBS命令
展开
 我来答
网创网
2012-09-13 · 超过53用户采纳过TA的回答
知道小有建树答主
回答量:96
采纳率:100%
帮助的人:85.1万
展开全部
Set fso=CreateObject("Scripting.FileSystemObject")
set f1=fso.opentextfile("a.txt",1)
b=""
do while f1.atendofstream<>true
n1=f1.readline
if n1<>"" then
n=n1
n1=mid(n1,1,instr(n1,"#")-1)
set f2=fso.opentextfile("b.txt",1)
a=0
do while f2.atendofstream<>true
n2=f2.readline
if n2<>"" then
n2=mid(n2,1,instr(n2,"#")-1)
if n1=n2 then
a=1
exit do
end if
end if
loop
f2.close
if a=0 then
b=b & n & vbcrlf
end if
end if
loop
f1.close
set f=fso.opentextfile("c.txt",2,true)
f.writeline b
f.close
msgbox "OK"

说明:1、行中、行末可以含有空行,
2、不为空行的行必须含有"#"
sudoku52
2012-09-12 · TA获得超过7万个赞
知道大有可为答主
回答量:1.2万
采纳率:82%
帮助的人:4767万
展开全部
a的每一行和b对比,规则为:只比对#前面相同的部分,如果b中不存在,则输出到c.txt

@echo off
(for /f "tokens=1* delims=#" %%i in (a.txt) do findstr /b "%%i#" b.txt>nul||echo %%i#%%j)>c.txt

输出内容为:
0#0;
1#1;
4#4;
好像还要比较b有a没有的部分,如下

@echo off
(for /f "tokens=1* delims=#" %%i in (a.txt) do findstr /b "%%i#" b.txt>nul||echo %%i#%%j)>c.txt
(for /f "tokens=1* delims=#" %%i in (b.txt) do findstr /b "%%i#" a.txt>nul||echo %%i#%%j)>>c.txt
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
niejieqiang
2012-09-12 · TA获得超过142个赞
知道小有建树答主
回答量:329
采纳率:100%
帮助的人:206万
展开全部
#!perl -w
use strict;

# AUTHOR: niejieqiang

my %hash;

my @array;
open my $file_b, "<", "b.txt";
while (<$file_b>) {
@array=split/\#/;
$hash{$array[0]} = 1;
}
close $file_b;

my @temp;
open my $file_a, "<", "a.txt";
while (<$file_a>) {
@temp=split/\#/;
print if not exists $hash{$temp[0]};
}
close $file_a;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式