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

[文本处理] [已解决]批处理怎么实现判断具体位置字符长度?

[复制链接]
发表于 2011-11-9 01:03:48 | 显示全部楼层 |阅读模式
本帖最后由 yx74110 于 2011-11-10 00:00 编辑

废话不说样板。。

guangzhou        lkkkk        lkkkk@163.com
neimeng        nm523        nm523@163.com
liaoning        liaoning87        liaoning87@163.com
zhejiang        hangzhoudalong        hangzhou8619@163.com
shanghai        shanghai123        shanghaitbv@163.com
qingdao        qingdao        qingdao888221@163.com
weihai        weihai654321        palxexef@163.com
zhengzhou        zhouzheng        siszhengzhou@163.com
wuhan        hubeiwuhan        shilong8721@163.com

文本如上  中间空白处是TAB键
实现如果第二处TAB也就是邮箱前面的哪处TAB与@之间的字符(比如lkkkk)长度为5-7(包括5、6、7)的话导出整行

上面样板导出为:
guangzhou        lkkkk        lkkkk@163.com
neimeng        nm523        nm523@163.com

评分

参与人数 1PB +2 收起 理由
CrLf + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-11-9 08:30:50 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. set/a s1=5,s2=7
  3. set/a s1-=1
  4. (for /f "tokens=3 delims=        @ " %%i in (1.txt)do (
  5.     set h=%%i
  6.     if not "!h:~%s1%!"=="" if "!h:~%s2%!"=="" (
  7.     echo %%i>con
  8.     echo %%i
  9. )))>2.txt
  10. pause
复制代码
发表于 2011-11-9 08:36:17 | 显示全部楼层
本帖最后由 yyykkkyyyy 于 2011-11-9 08:42 编辑

哦搞错要的全行
  1. @echo off&setlocal enabledelayedexpansion
  2. set/a s1=5,s2=7
  3. set/a s1-=1
  4. (for /f "tokens=1-3* delims=        @ " %%a in (1.txt)do (
  5.     set h=%%c
  6.     if not "!h:~%s1%!"=="" if "!h:~%s2%!"=="" (
  7.     echo 所在行 %%c>con
  8.     echo "%%a        %%b        %%c@%%d"
  9. )))>2.txt
  10. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 乐于助人

查看全部评分

发表于 2011-11-9 08:49:27 | 显示全部楼层
本帖最后由 601997526 于 2011-11-9 08:52 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. set a=TAB键
  3. for /f "tokens=1,2,3,4 delims=%a%@" %%i in (a.txt) do (set i=%%k
  4. if not "!k:~4!"=="" (if "!k:~7!"=="" echo %%i%a%%%j%a%%%l@%%l)
  5. )
  6. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 乐于助人

查看全部评分

 楼主| 发表于 2011-11-9 22:55:43 | 显示全部楼层
回复 2# yyykkkyyyy


    此时不应有 @ "。

不行啊。返回这样的。
 楼主| 发表于 2011-11-9 22:56:05 | 显示全部楼层
回复 2# yyykkkyyyy


        此时不应有 @ "。

不行啊。返回这样的。
 楼主| 发表于 2011-11-9 22:58:49 | 显示全部楼层
回复 4# 601997526


    没有导出啊?
发表于 2011-11-9 23:41:06 | 显示全部楼层
回复 6# yx74110


哦, 我发现了是贴到这里后把Tab空给换了,你把代码复制过去后把 delims=        @ " 这个位置中间的大空删去换成Tab空
 楼主| 发表于 2011-11-9 23:59:39 | 显示全部楼层
回复 8# yyykkkyyyy


    灰常受用。。哈哈。还是可视化的。。。

技术灰常好。。。灰常感谢。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 06:50 , Processed in 0.022572 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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