Board logo

标题: [文本处理] 求助批处理去掉重复内容,仅保留不重复的名字 [打印本页]

作者: delab-1    时间: 2024-8-15 22:31     标题: 求助批处理去掉重复内容,仅保留不重复的名字

文件A.txt包含如下名称
Liming
wangqiang
zhihong
lingming
lina
wangzhang

我想利用循环语句,将上述名称中重复的去掉(实际文本更长,上面的是个例子)。编写了如下命令
  1. if exist new.txt del new.txt
  2. set/a num=0
  3. setlocal enabledelayedexpansion
  4. for /f %%a in (a.txt) do (
  5.     set/a num=!num!+1
  6.     call :chkslt !num!
  7.     echo %%a>>set2.csv     
  8.     :next
  9.    
  10.     :chkslt
  11.     for /f "skip=%1" %%b in (set1.csv) do (
  12.     if %%a==%%b goto next
  13.                                              )
  14.                                 )
复制代码
我需要在:chkslt的循环,当出现%%a==%%b的时候,能够跳出当前循环,进入到上层循环,该如何做呀?我用了goto next,可以不行。请高手给与指导
作者: delab-1    时间: 2024-8-15 23:06

我这个程序不行,我本想通过两个循环迭代的方式,实现去重。目前的这个call:chkslt的方式,不是重复循环的概念。还请高手给与援手,先提前谢过
作者: Batcher    时间: 2024-8-15 23:30

回复 1# delab-1


批处理如何删除文本文件中重复的行
http://bbs.bathome.net/thread-5219-1-1.html

批处理如何删除txt文本中的重复行
http://bbs.bathome.net/thread-5509-1-1.html

批处理去除超大文本中的重复行
http://bbs.bathome.net/thread-4690-1-1.html

批处理删除文本重复行时如何使用变量延迟扩展
http://bbs.bathome.net/thread-5326-1-1.html

批处理中sort命令如何过滤重复行
http://bbs.bathome.net/thread-4896-1-1.html
作者: delab-1    时间: 2024-8-16 01:04

太感谢了,非常棒!!!
作者: haichuan5121    时间: 2024-8-16 10:10

本帖最后由 haichuan5121 于 2024-8-16 11:08 编辑

回复 3# Batcher


    CSV格式的怎么搞定;也是需要去重,需要第17行开始前三列一致的行去重,即仅保留以数字1-20数字开头的行,行数不一定50个以内;
结果保留
No        X-Point        Y-Point
1        80.2        16.8
2        270.8        16.8
3        448.3        16.8
4        678.5        16.8
5        875.4        16.8
6        1038.1        16.8
7        1038.1        436.7
8        875.4        436.7
9        678.5        436.7
10        448.3        436.7
11        270.8        436.7
12        80.2        436.7
13        80.2        862.9
14        270.8        862.9
15        448.3        862.9
16        678.5        862.9
17        875.4        862.9
18        1038.1        862.9
19        1038.1        1283.3
20        875.4        1283.3
21        678.5        1283.3
22        448.3        1283.3
23        270.8        1283.3
24        80.2        1283.3


源内容是
bbb                               
Slot No        1                       
Date        0.00E+00                       
Lot ID        0.00E+00                       
Operator ID        AGV                                        
Cassette ID        0.00E+00                       
Retry        0                       
Recipe ID        23s                                       
Std Min Value        0.00E+00                       
Std Max Value        1.00E+09                       
Ctl Min Value        0.00E+00                       
Ctl Max Value        1.00E+09                       
Function        SHEET                           
Curr.Range        AUTO                              
Volt Range        AUTO                              
No        X-Point        Y-Point        Data        Result   
1        80.2        16.8        asd        OK   
2        270.8        16.8        asd        OK   
3        448.3        16.8        asd        OK   
4        678.5        16.8        asd        OK   
5        875.4        16.8        asd        OK   
6        1038.1        16.8        hdfg        OK   
7        1038.1        436.7        asd        OK   
8        875.4        436.7        asd        OK   
9        678.5        436.7        sc        OK   
10        448.3        436.7        asd        OK   
11        270.8        436.7        asd        OK   
12        80.2        436.7        asd        OK   
13        80.2        862.9        sfs        OK   
14        270.8        862.9        asd        OK   
15        448.3        862.9        asd        OK   
16        678.5        862.9        asd        OK   
17        875.4        862.9        asd        OK   
18        1038.1        862.9        asd        OK   
19        1038.1        1283.3        asd        OK   
20        875.4        1283.3        asd        OK   
21        678.5        1283.3        asd        OK   
22        448.3        1283.3        asd        OK   
23        270.8        1283.3        0.00E+00        OK   
24        80.2        1283.3        0.00E+00        OK   
MAX        3.59E+02
作者: 77七    时间: 2024-8-16 12:32

  1. if exist new.txt del new.txt
  2. set/a num=0
  3. setlocal enabledelayedexpansion
  4. (for /f %%a in (a.txt) do (
  5. set/a num=num+1
  6. call :chkslt !num!
  7. if errorlevel 2 (
  8. echo %%a
  9. )
  10. ))>set2.csv
  11. pause
  12. exit
  13. :chkslt
  14. for /f "skip=%1" %%b in (set1.csv) do (
  15. if %%a==%%b (
  16. exit /b 1
  17. )
  18. )
  19. exit /b 2
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2