[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理怎样筛选一个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 编辑 ]

楼主的意思不是描述得很清楚,你应该是要根据2.csv中第二列来对1.csv进行筛选:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=2" %%a in (2.csv) do set "str=!str! %%a"
  3. for /f "delims=" %%a in ('findstr /iv "!str!" 1.csv') do echo %%a>>3.csv
  4. start 3.csv
复制代码
***共同提高***

TOP

不好意思,没有描述清楚,是通过2.csv的两列 姓名、性别,和1.csv中找到完全匹配的就不写入3.csv,否则写入。

TOP

请把问题描述更新在顶楼,代码修改如下:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=2,3" %%a in (2.csv) do set "str=!str! %%a,%%b"
  3. for /f "delims=" %%a in ('findstr /iv "!str!" 1.csv') do echo %%a>>3.csv
  4. start 3.csv
复制代码
***共同提高***

TOP

麻烦能否给个注释,我是新手,看的不是很懂,谢谢

TOP

返回列表