中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-18 23:37
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]分离出9,10位号码 查看 745 回复 5
楼 主 [求助]分离出9,10位号码 发表于 2010-03-29 20:58 ·  中国 福建 泉州 石狮市 电信
中级用户
★★
积分 234
发帖 129
注册 2006-11-28 09:21
UID 71989
性别 男
状态 离线
我想把新申请到的QQ号码分离出9,10位.

QQ.txt如下:
914421872----zdhfd3e----yegdfgnoxjp_24333@foxmail.com----申请日期: 2009-10-17
914613410----oqcsd4udu----cegwgdvf_00673@foxmail.com----申请日期: 2009-10-17
1295686760----gdsf3wfe----xdyhgzmkvm_24291@foxmail.com----申请日期: 2009-10-17
917517855----kjw45rfh----lxlxdvxk_49606@foxmail.com----申请日期: 2009-10-17
1293888658----u27au6q3----gccidvqw_19724@foxmail.com----申请日期: 2009-10-17
1295776504----bwe0ggfo5----bhsdvdmym_54948@foxmail.com----申请日期: 2009-10-17
1153572352----b3gbgf7e2----rusddspph_54071@foxmail.com----申请日期: 2009-10-17
1295624496----53gfhgez----dhfrtrrqa_13930@foxmail.com----申请日期: 2009-10-17
1400678488----ll6cvchg----rjvfg6yia_81829@foxmail.com----申请日期: 2009-10-17

其中第一组"-----"前面是号码,后面是密码及其他,想得到:

9位的.txt:
914421872----zdhfd3e----yegdfgnoxjp_24333@foxmail.com----申请日期: 2009-10-17
914613410----oqcsd4udu----cegwgdvf_00673@foxmail.com----申请日期: 2009-10-17
917517855----kjw45rfh----lxlxdvxk_49606@foxmail.com----申请日期: 2009-10-17

10位的.txt:
1295686760----gdsf3wfe----xdyhgzmkvm_24291@foxmail.com----申请日期: 2009-10-17
1293888658----u27au6q3----gccidvqw_19724@foxmail.com----申请日期: 2009-10-17
1295776504----bwe0ggfo5----bhsdvdmym_54948@foxmail.com----申请日期: 2009-10-17
1153572352----b3gbgf7e2----rusddspph_54071@foxmail.com----申请日期: 2009-10-17
1295624496----53gfhgez----dhfrtrrqa_13930@foxmail.com----申请日期: 2009-10-17
1400678488----ll6cvchg----rjvfg6yia_81829@foxmail.com----申请日期: 2009-10-17


希望能找到速度快的,谢谢!!
2 发表于 2010-03-29 21:20 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
UID 79003
性别 男
状态 离线
sort QQ.txt


然后循环判断第10位是不是-
是的话,后面的都是9位

不然就直接判断是不是第10位为-,是是9位的,不是就是10位的
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
3 发表于 2010-03-29 21:35 ·  中国 福建 泉州 晋江市 电信
中级用户
★★
积分 234
发帖 129
注册 2006-11-28 09:21
UID 71989
性别 男
状态 离线
Originally posted by slore at 2010-3-29 21:20:
sort QQ.txt


然后循环判断第10位是不是-
是的话,后面的都是9位

不然就直接判断是不是第10位为-,是是9位的,不是就是10位的


谢slore大大指导!!
我基本属菜鸟级,平时只忙搞QQ,需要时才想起这里,想想惭愧啊... - -!
排序后会快些?判断语句我不会写,能给段完整的代码?
谢谢!!
先分离出一种,余下的用findstr /V反向我会.
4 发表于 2010-03-29 22:10 ·  中国 福建 泉州 晋江市 电信
中级用户
★★
积分 234
发帖 129
注册 2006-11-28 09:21
UID 71989
性别 男
状态 离线
@echo off
for /f "tokens=1 delims=----" %%a in (QQ.txt) do if %%a LSS 1000000000 echo %%a>>9位的.txt
余下的findstr /V反向,或;
for /f "tokens=1 delims=----" %%a in (QQ.txt) do if %%a GTR 1000000000 echo %%a>>10位的.txt

有效率更高的,请诸大大务指导下,谢谢!!

[ Last edited by ka56 on 2010-3-29 at 22:14 ]
5 发表于 2010-03-29 23:12 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
UID 79003
性别 男
状态 离线
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in (QQ.txt) do (
set line=%%a
if "!line:~9,1!"=="-" (echo %%a>>9位的.txt) else (echo %%a>>10位的.txt)
)
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
6 发表于 2010-03-29 23:37 ·  中国 福建 泉州 电信
中级用户
★★
积分 234
发帖 129
注册 2006-11-28 09:21
UID 71989
性别 男
状态 离线
谢谢分享又一种思路!真好,您真伟大!!
论坛跳转: