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

[文本处理] 批处理BAT如何截取数字排序并排重?

[复制链接]
发表于 2014-5-5 19:32:53 | 显示全部楼层 |阅读模式
1.txt的文本,内有数字,都是用空格隔开的,我只取第三块和第四块的数据
用的是for命令,第三块数据是%%i 第四块的数据是%%J
然后后面跟的是命令,比如
dir %%i
dir %%J

这些都没有问题,问题是数据中有相同的,希望排重,如果可以最好按大小排序。
%%i和%%J其本身的数据就是按大小排列的,但是两组数据在一起就不一定了。
比如
4      5
6      8
15    14

都是数字,没有其它字符。
 楼主| 发表于 2014-5-5 19:35:56 | 显示全部楼层
本帖最后由 freesoft00 于 2014-5-5 20:20 编辑

kkkkkkkkkkkkkkkkkk这里的问题删除掉了。
发表于 2014-5-5 19:50:00 | 显示全部楼层
看不太懂,建议提供处理前后样本,量不要大,有代表性即可
 楼主| 发表于 2014-5-5 20:23:18 | 显示全部楼层
00                   235       107780084
01        107780085       312576704
02        107780148       312576704
 楼主| 发表于 2014-5-5 20:25:12 | 显示全部楼层
我把二楼的问题删除了,只看一楼的就可以,文本样本类似这样,第二列和第三列是需要处理的数据,就上面的数据来说312576704就是重复的,有两个。
发表于 2014-5-5 21:11:58 | 显示全部楼层
  1. @echo off
  2. for /f "tokens=2-3" %%i in (1.txt) do (
  3.     if not defined 2_%%i (
  4.         if not defined 3_%%j (
  5.             echo dir %%i
  6.             echo dir %%j
  7.             set 3_%%j=1
  8.         ) else (
  9.             set 2_%%i=1
  10.         )
  11.     )
  12. )
  13. pause
复制代码
 楼主| 发表于 2014-5-6 10:33:20 | 显示全部楼层
dir 235
dir 107780084
dir 107780085
dir 312576704

感谢,少了一个数字,少了107780148  ,另外,相邻的书是否也可以排除掉,比如107780084、107780085
只保留107780084,如果这个不好实现,那么把原来的处理好也可以。
发表于 2014-5-6 13:07:38 | 显示全部楼层
本帖最后由 terse 于 2014-5-6 13:11 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=2-3" %%i in (1.txt) do (
  3.     set/a $%%i=%%i+1,#%%i=%%i-1,$%%j=%%j+1,#%%j=%%j-1,f=0
  4.     for %%a in (%%i %%j) do (
  5.         for %%b in (%%a !$%%a! !#%%a!) do if defined _%%b set f=1
  6.         if !f! == 0 echo dir %%a
  7.         set /a _%%a=_!#%%a!=_!$%%a!=f=0
  8.     )
  9. )
  10. pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 03:13 , Processed in 0.039606 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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