找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 73335|回复: 23

[数值计算] 【已解决】批处理怎样查找两个文件的不同行?

[复制链接]
发表于 2015-11-8 02:07:29 | 显示全部楼层 |阅读模式
本帖最后由 ads350668398 于 2015-11-14 18:30 编辑
  1. @echo off
  2. for /f "delims=*" %%a in (22.txt) do (
  3. findstr /i "%%a" 11.txt || echo %%a>>3.txt
  4. )

  5. pause>nul
复制代码
**************************************
文件11
11 11
22 22
33 33
44 44
55 55
****************
文件22
11 11
12 35
33 33
88 4
44 44
55 55
****************
输出文件3
12 35
**************
哪个哥们帮忙 看看 哪里错了啊 谢谢
 楼主| 发表于 2015-11-8 02:07:53 | 显示全部楼层
困了先睡一觉 明天 啊来
发表于 2015-11-8 04:03:47 | 显示全部楼层
要能理解你的意思也是够费劲的。
发表于 2015-11-8 04:28:29 | 显示全部楼层
你得明白for是干嘛的
在你代码里体现的意思是,分别读取22.txt内的每一行,然后到11.txt里查找。
这并不是匹配每一行相同与否。

评分

参与人数 1技术 +1 收起 理由
依山居 + 1 1

查看全部评分

 楼主| 发表于 2015-11-8 08:16:00 | 显示全部楼层
不好意思 其实我是想 对比输出 不一样的行!
 楼主| 发表于 2015-11-8 08:23:17 | 显示全部楼层
回复 3# 依山居
我是打算 对比两个文件11.txt和22.txt然后输出的是不相同的内容
 楼主| 发表于 2015-11-8 08:31:51 | 显示全部楼层
本帖最后由 ads350668398 于 2015-11-8 08:35 编辑

回复 4# B魔方大人
解决 问题 如果有别的方法可以实现 比较输出不相同行的内容 告诉下 谢谢

另:问下 为什么输出了
12 35
而又不输出
88 4

谢谢
发表于 2015-11-8 08:35:07 | 显示全部楼层
回复 6# ads350668398


    你试试 fc
 楼主| 发表于 2015-11-8 08:44:47 | 显示全部楼层
回复 8# 依山居


    不知道 FC 晕
fc不会是方翠山是意思吧#24
发表于 2015-11-8 09:22:05 | 显示全部楼层
本帖最后由 尘丶 于 2015-11-8 09:26 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /l %%a in (1,1,50) do set /p n%%a=)<1.txt
  3. (for /l %%a in (1,1,50) do set /p m%%a=)<2.txt
  4. for /l %%a in (1,1,50) do if not !n%%a!==!m%%a! echo;!n%%a! !m%%a!
  5. pause
复制代码
fc是命令 fc /?
好像用findstr也可以,论坛有 我忘记怎么写的了

评分

参与人数 1技术 +1 收起 理由
依山居 + 1 1

查看全部评分

发表于 2015-11-8 10:31:44 | 显示全部楼层
  1. D:\temp>diff 11.txt 22.txt
  2. 2c2
  3. < 12 35
  4. ---
  5. > 22 22
  6. 4d3
  7. < 88 4
复制代码
 楼主| 发表于 2015-11-8 10:51:54 | 显示全部楼层
感谢网友的热心 我扫后 尝试一下
发表于 2015-11-8 11:03:48 | 显示全部楼层
你当真是不能好好打字了。
发表于 2015-11-8 11:06:54 | 显示全部楼层
findstr /ixvg:22.txt 11.txt
发表于 2015-11-8 11:12:47 | 显示全部楼层
本帖最后由 B魔方大人 于 2015-11-8 11:25 编辑

回复 7# ads350668398

比较向同行内容:fc命令
举例:
fc 22.txt 11.txt

另外第二个问题,已经说的很清楚了。for读取22.txt每一行%%a,findstr搜索11.txt是否含有%%a。
而%%a,是包含空格的字符串,所以findstr会当作88or4处理。搜索88和4
详情需要自己查看findstr命令。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 06:04 , Processed in 0.023288 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表