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

这种贴子在论坛有很多,我前几天就问过一次咯,你可以找找我发的贴看看
就楼主的要求,上面的内容没有特殊符号,可以用这个
下面的代码处的效果不是最后结果,你要的话套多一层"!str:%%a=!"=="!str!"
  1. @echo off
  2. setlocal enableDelayedExpansion
  3. set str=,
  4. for /f %%i in (1.txt) do (
  5. for /f %%a in (",!i!,") do if "!str:%%a=!"=="!str!" (
  6. set str=,!n!!str!
  7. )
  8. )
  9. for %%a in (!str!) do echo %%a>>2.txt
复制代码
有时候你翻下论坛的资料改下就可以O的了

TOP

能不能完整一下代码

TOP

怎么是答非所问啦,有错误是没写完整,但大至意思还是没错呀
你在循环里把if变量改x再加两句代码不就行了
set x=%%i
set x=
601997526 发表于 2011-6-5 17:50


不是笔误,是逻辑错误。

TOP

3# 601997526

答非所问,请仔细看要求
wh1234567 发表于 2011-6-5 15:23

怎么是答非所问啦,有错误是没写完整,但大至意思还是没错呀
你在循环里把if变量改x再加两句代码不就行了
set x=%%i
set x=

TOP

三个方案:
1、先找出重复行输出到2.txt,然后findstr /x /v /l /g:2.txt 1.txt,若没效果,可以吧/l换成/r
2、为每行计数出现的内容计数,然后查找值为1的行
3、将文本排序,去除相邻的重复行,再恢复原有顺序

论坛里相关旧帖很多,不再贴代码了

TOP

7# Batcher


不能用,我没有第三方程序

TOP

  1. gawk "{a[$0]++}END{for(i in a)if(a[i]==1)print i}" a.txt | more >b.txt
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 wh1234567 于 2011-6-5 15:38 编辑

5# zm900612
:2
cls
echo                   过滤文本重复行只提取不相同行
echo.
set /p wb=请输入要处理的[路径]文本:
set /p wb1=请输入处理后生成的[路径]文本:
for /f "delims=" %%i in (%wb%) do (
     if not defined %%i set %%i=A &   echo %%i>>%wb1%
)
echo                     处理完成
ping /n 2 127.0.1 >nul
goto :eof
你帮我修改一下这个代码吧,修改成我标题要求的那种,只提取不相同的行
另外这个代码不支持拖拽,我想修改成支持拖拽的那种

TOP

3# 601997526


有逻辑错误

TOP

3# 601997526

答非所问,请仔细看要求

TOP

  1. for /f "delims=" %%i in (1.txt) do (if not defined %%i echo,%%i >>2.txt&set "%%i=a")
复制代码

TOP

楼主为什么总是问重复的问题

TOP

返回列表