bat批处理 去除b.txt内容中包含a.txt的内容。 10
例如:a.txt内容为:苹果橘子香蕉b.txt内容为香蕉150鸭梨200葡萄100苹果30执行bat批处理结果存入c.txt内容为:鸭梨200葡萄100...
例如:a.txt内容为:
苹果
橘子
香蕉
b.txt内容为
香蕉150
鸭梨200
葡萄100
苹果30
执行bat批处理结果存入c.txt内容为:
鸭梨200
葡萄100 展开
苹果
橘子
香蕉
b.txt内容为
香蕉150
鸭梨200
葡萄100
苹果30
执行bat批处理结果存入c.txt内容为:
鸭梨200
葡萄100 展开
展开全部
这个批处理写起来应该是比较麻烦的,按批处理的写法只能在b.txt的每一行对a.txt的所有内容循环,找到就退出。如果文件不大,速度应该不太慢。
如果你这两个文件能够改写行序,那建议先对两个文件排序:
sort a.txt > a_sorted.txt
sort b.txt > b_sorted.txt
这样配合折半查找算法,处理速会快不少。如果嫌麻烦,就直接按行取字符串对比就行了。
但是真要写好这个bat估计需要一个比较大的框架结构:需要取字符串的长度的过程、主调过程(含循环、字符串取长、截取、对比、输出几个部分)。
另外给你一个变相的处理办法:把两个txt导入excel,分别排序后,拷贝到一页中的两个列,对着比一下,相同的删除,剩下的全选,拷回记事本,保存为c.txt就行了。
还得照顾孩子,就不给你细写了,但愿能帮到你!
如果你这两个文件能够改写行序,那建议先对两个文件排序:
sort a.txt > a_sorted.txt
sort b.txt > b_sorted.txt
这样配合折半查找算法,处理速会快不少。如果嫌麻烦,就直接按行取字符串对比就行了。
但是真要写好这个bat估计需要一个比较大的框架结构:需要取字符串的长度的过程、主调过程(含循环、字符串取长、截取、对比、输出几个部分)。
另外给你一个变相的处理办法:把两个txt导入excel,分别排序后,拷贝到一页中的两个列,对着比一下,相同的删除,剩下的全选,拷回记事本,保存为c.txt就行了。
还得照顾孩子,就不给你细写了,但愿能帮到你!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#include<string.h>
char s[100][100];
char tmp[100];
int p;
int main()
{
//b的内容中间要用空格隔开的
int n=0,m=0;
freopen("C:\\a.txt","r",stdin);
while(scanf("%s",s[n])!=EOF)
{
n++;
}
freopen("C:\\b.txt","r",stdin);
freopen("C:\\c.txt","w",stdout);
while(scanf("%s%d",tmp,&p)!=EOF)
{
for(m=0;m<n;m++)
{
if(strcmp(tmp,s[m])==0)break;
}
if(m==n)
{
printf("%s %d\n",tmp,p);
}
}
return 0;
}
#include<string.h>
char s[100][100];
char tmp[100];
int p;
int main()
{
//b的内容中间要用空格隔开的
int n=0,m=0;
freopen("C:\\a.txt","r",stdin);
while(scanf("%s",s[n])!=EOF)
{
n++;
}
freopen("C:\\b.txt","r",stdin);
freopen("C:\\c.txt","w",stdout);
while(scanf("%s%d",tmp,&p)!=EOF)
{
for(m=0;m<n;m++)
{
if(strcmp(tmp,s[m])==0)break;
}
if(m==n)
{
printf("%s %d\n",tmp,p);
}
}
return 0;
}
追问
有bat批处理的代码吗,这个是C的吧
追答
C可以生成bat的啊
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询