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

[文本处理] 批处理怎样提取一个文本内容里的不重复行并输出?

批处理提取一个文本内容里的不重复行并输出,如何实现?
我有一个文本,里面有好多行,要求提取不重复的行,例如
原文本1:
4344
你1好11
4334
222
你1好
4535
不过
天天4
4334
不过
你1好11
处理后并输出的文本2为:
4344
222
你1好
4535
天天4

3# 601997526

答非所问,请仔细看要求

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

7# Batcher


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

TOP

能不能完整一下代码

TOP

14# Batcher

用第三方命令有利有弊:可能快速准确处理,但不方便使用,例如不可能每台电脑上都有这个程序还得另外下载,所以能弄成不是第三方的批处理就好了

TOP

13# chenqldiy

你这是干啥的批处理?我有点看不懂

TOP

请高手帮我优化一下,我弄得这个批处理太慢
@echo off
setlocal enabledelayedexpansion
set a=0
echo                   过滤文本重复行只提取不相同行
echo.
set /p wb=输入要处理的文件名:
set /p wb1=输入要保存的文件名:
set wb=%wb:"=%
set wb1=%wb1:"=%

for /f "delims=" %%i in ('type "%wb%"') do (
set a=0
for /f "delims=" %%j in ('type "%wb%"') do if "%%i" == "%%j" (set /a a+=1)
if "!a!" leq "1" echo %%i>>"%wb1%".txt
)
echo                     处理完成
ping /n 2 127.0.1 >nul
goto :eof
1

评分人数

    • Batcher: 请编辑自己的帖子,把代码放到code标签里面 ...PB -2

TOP

本帖最后由 wh1234567 于 2011-6-6 01:58 编辑

19# batman

回复版主,不是去除重复行,而是要提取不同的行,也就是将包含有重复的行全部去掉,剩下的就是没有重复过的行了,希望帮忙

例如:原文本1:
12
13
22
你好3?
13
12
处理后并输出的文本内容就是:
22
你好3?

TOP

23# batman

处理速度很快,但就是处理后多出了一行

TOP

返回列表