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

[文本处理] [已解决]批处理怎样提取文本每行前12个字符?

我昨天看了论坛的FOR教程。今天就碰到个问题,结果弄了大半个下午,什么都没做成。现在请大家帮一下忙,谢谢了。

有一个文本文档a.txt,内容为:
076088580029
86 0760 22341995 86 0760 22341995
076922452078
0760076022703979
076087721560
076085324980
0760
076022219696
07603331676
076088391223
…………
…………
…………
很多个,现在需要将此文本每行的前“86”,和其中每行的空格去掉。然后将每行的12个字符提取出来,输出到另外一个文本文档里。请问一下该如何写。

我自己的思路是这样的,先去掉所有的空格,然后利用delims=空格,提取这个空格前的内容。
因为每行刚好是12个字符。结果最后发现只输出了一行。
代码是这样写的。
  1. for /f "tokens=1-5 delims=" %%i in (a.txt) do echo %%i %%m %%y %%j %%k
复制代码
我新学的,请不要笑我哈。

[ 本帖最后由 Bearxy 于 2011-2-20 22:22 编辑 ]
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (a.txt) do (
  3.    set "str=%%i"
  4.    if "!str:~0,3!"=="86 " set str=!str:~3!
  5.    set str=!str: =!
  6.    echo !str:~0,12!
  7. )
  8. pause
复制代码

[ 本帖最后由 随风 于 2011-2-20 20:08 编辑 ]
1

评分人数

技术问题请到论坛发帖求助!

TOP

最后一个FOR是后加的。没看见“然后将每行的12个字符提取出来”
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (a.txt) do (set a=%%i&set b=!a: =!
  3.    for %%j in (!b!) do (set q=-%%j& if "!q:~0,3!" equ "-86" (echo !q:-86=!>>1.txt) else (echo !q:-=!>>1.txt)
  4.   )
  5. )
  6. for /f "delims=" %%a in (1.txt) do set a=%%a&echo !a:~0,12! >>输出文件.txt
  7. del 1.txt
  8. pause
复制代码

[ 本帖最后由 wc726842270 于 2011-2-20 18:55 编辑 ]
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

有个问题请教一下。SET能获得"123467……"中的"34567……“么?希望比我上面的方法方便些
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

回复 2楼 的帖子

是把行首的86删掉,不是把以86开头的行删掉吧?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4楼 的帖子

批处理set命令截取字符详解
http://bbs.bathome.net/thread-996-1-1.html

批处理set命令变量字符截取点点通
http://bbs.bathome.net/thread-40-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 6楼 的帖子

多谢了.看来试验的次数还是少了些.一开始我以为是%var:~3,%呢.看过之后才发现是
%var:~3%(有点仿正则了.呵呵)

[ 本帖最后由 wc726842270 于 2011-2-20 19:33 编辑 ]
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

回复 3楼 的帖子

刚去测试了,我在论坛找了一个去除所以空格和空行的代码。
然后再加上大哥你的代码,效果非常好。

感谢!!

TOP

回复 5楼 的帖子

确实,太大意了,以修改。
技术问题请到论坛发帖求助!

TOP

返回列表