• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    批处理处理文本文件去重复实现代码

    最近需要将重复的内容去掉,所以就想到了使用bat或vbs实现,没想到网上已经有人写好了,测试也正好学习一下

    使用方法:把文本拖到批处理上就行了。。。

    @echo off
    :: Code by oicu#lsxk.org 2007/11/29
    
    rem chcp 437>nul
    :: 看情况使用,utf-8编码的文件不能少了chcp命令,一般无需使用,
    :: 但无论是否使用都不支持utf-16的文件。
    
    :: pushd "%~dp1"
    :: 如果不用pushd和popd,文件都要用绝对路径不能只用文件名。
    
    if "%~1"=="" goto :EOF
    set outputfile=%~dpn1_output%~x1
    
    type nul>"%outputfile%"
    
    echo Waiting...
    
    for /F "tokens=1* delims=:" %%i in ('findstr /n .* "%~1"') do (
      findstr /B /E /C:"%%j" "%outputfile%">nul 2>1 || echo.%%j>>"%outputfile%"
    )
    
    pause
    start "" notepad "%outputfile%"
    :: popd
    exit

    【 在 oicu (Oh! I see you!) 的大作中提到: 】
    : 去重复倒是行。。缺点就是慢和保留原有的空行了。

    以下是vbs实现的代码

    以下是这个脚本的源代码,复制后另存为vbs后缀的文件,双击即可运行。文件要放在C盘根下的Text.TXT,请特别注意:文本中一行一条记录,不要有空行。

    Const adOpenStatic = 3
    Const adLockOptimistic = 3
    Const adCmdText = H0001 
    Set objConnection = CreateObject("ADODB.Connection")
    Set objRecordSet = CreateObject("ADODB.Recordset")
    
    strPathToTextFile = "C:\"
    strFile = "Test.txt"
    
    objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;"  _
       "Data Source="  strPathtoTextFile  ";"  _
         "Extended Properties=""text;HDR=NO;FMT=Delimited"""
    
    objRecordSet.Open "Select DISTINCT * FROM "  strFile, _
      objConnection, adOpenStatic, adLockOptimistic, adCmdText
    
    Do Until objRecordSet.EOF
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
       set Fp=objFSO.OpenTextFile("C:\test1.txt",8,True,0)
       fp.WriteLine objRecordSet.Fields.Item(0).Value
       fp.close
       set objFSO = nothing
       objRecordSet.MoveNext
    Loop

    上一篇:用批处理删除N天前或指定日期时间(前后)创建(或修改)的文件
    下一篇:批处理入门手册之批处理常用DOS命令篇(echo、rem、cd、dir)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    批处理处理文本文件去重复实现代码 批处理,处理,文本,文件,