标题: [文件操作] 批处理怎样筛选一个csv报表中有但另一个中没有的内容? [打印本页]
作者: zhoubinqiu 时间: 2010-1-27 23:23 标题: 批处理怎样筛选一个csv报表中有但另一个中没有的内容?
请教高手
我有两个csv报表1.csv 2.csv
1.csv 2.CSV
序号 姓名 性别 年龄 序号 姓名 性别
1 AA B 19 1 AA B
2 BB B 19 2 BB B
3 CC G 18 3 DD G
通过2.csv对1.csv筛选,选出结果写入3.csv
序号 姓名 性别 年龄
3 CC G 18
不好意思,没有描述清楚,是通过2.csv的两列 姓名、性别,和1.csv中找到完全匹配的就不写入3.csv,否则写入。
[ 本帖最后由 zhoubinqiu 于 2010-1-28 10:10 编辑 ]
作者: batman 时间: 2010-1-28 09:00
楼主的意思不是描述得很清楚,你应该是要根据2.csv中第二列来对1.csv进行筛选:- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=2" %%a in (2.csv) do set "str=!str! %%a"
- for /f "delims=" %%a in ('findstr /iv "!str!" 1.csv') do echo %%a>>3.csv
- start 3.csv
复制代码
作者: zhoubinqiu 时间: 2010-1-28 10:00
不好意思,没有描述清楚,是通过2.csv的两列 姓名、性别,和1.csv中找到完全匹配的就不写入3.csv,否则写入。
作者: batman 时间: 2010-1-28 10:08
请把问题描述更新在顶楼,代码修改如下:- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=2,3" %%a in (2.csv) do set "str=!str! %%a,%%b"
- for /f "delims=" %%a in ('findstr /iv "!str!" 1.csv') do echo %%a>>3.csv
- start 3.csv
复制代码
作者: zhoubinqiu 时间: 2010-1-28 10:26
麻烦能否给个注释,我是新手,看的不是很懂,谢谢
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |