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

[文本处理] 批处理怎样把文本中带某字段的行另存为指定名文本?

工作需要将这样的文件全部手动拆分成很多小的文本:
D061085,B145
D061086,B145
D061087,B145
Y1045412,B70
Y1045413,B70
Y1045414,B70
Y1336484,B110
Y1336491,B110
Y1336492,B110
Y1336497,B110
Y1339259,B110
Y1339273,B110
Y1339274,B110
Y1517027,B139
Y1517708,B139
Y1517038,B139
Y1517023,B139
Y1517024,B139
Y1517025,B139
Y1517026,B139
.............
每一行由前面一串字符,逗号,和后面的批号,从B01-B300,然后是回车,大概有几十万行之多,实在是噩梦,要求是将后面的例如带B110的行存为110.TXT;带B139的存为139.TXT等等。有没有什么好的代码?


实在不想当伸手党,但是明天赶工作,看了半晚上批处理教程,觉得难以一时学出合适的代码,只好再跪求。
2楼的大人作出的代码简单,基本看懂了,比较适合我,因为我的几十万行文本并不一定都从B01到B300都有,所以四楼大人的一时还理解不了,并且运行后会出现空文本文件。

另,我拿到的大文本每行是这样的:
9374        Y1260684        B100
9420        Y1263014        B100
9387        Y1260801        B100
9379        Y1260698        B100
。。。。。
。。。。。

掐掉头尾的不用部分,并在中间的后后加.pdf,即如何能将其变化为:
Y1260684.pdf
Y1263014.pdf
Y1260801.pdf
Y1260698.pdf
....
....
这样的文本?

能和二楼的结合,即运行一遍能将大文本按其中最后的B??,拆分成若干的小文本,并且里边是
Y1260801.pdf
Y1260698.pdf
的形式。

[ 本帖最后由 bfd2138 于 2010-11-5 13:05 编辑 ]

不知道可以不
  1. @echo off
  2. for /f "tokens=1-2 delims=B" %%i in (a.txt) do echo %%iB%%j >>%%j.txt
  3. pause
复制代码

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (1001 1 1300) do (
  3.     set var=%%i
  4.     if %%i lss 1100 (set var=!var:~-2!) else (set var=!var:~-3!)
  5.     del !var!.txt
  6. )
  7. pause
复制代码

TOP

a.txt就是几十万行所在的文本

  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (1001 1 1300) do (
  3.     set var=%%i
  4.     if %%i lss 1100 (set var=!var:~-2!) else (set var=!var:~-3!)
  5.     findstr "B!var!" a.txt>>!var!.txt
  6. )
  7. pause
复制代码

TOP

谢谢2.4楼的大人,都很管用。

TOP

实在不想当伸手党,但是明天赶工作,看了半晚上批处理教程,觉得难以一时学出合适的代码,只好再跪求。
2楼的大人作出的代码简单,基本看懂了,比较适合我,因为我的几十万行文本并不一定都从B01到B300都有,所以四楼大人的一时还理解不了,并且运行后会出现空文本文件。

另,我拿到的大文本每行是这样的:
9374        Y1260684        B100
9420        Y1263014        B100
9387        Y1260801        B100
9379        Y1260698        B100
。。。。。
。。。。。

掐掉头尾的不用部分,并在中间的后后加.pdf,即如何能将其变化为:
Y1260684.pdf
Y1263014.pdf
Y1260801.pdf
Y1260698.pdf
....
....
这样的文本?

能和二楼的结合,即运行一遍能将大文本按其中最后的B??,拆分成若干的小文本,并且里边是
Y1260801.pdf
Y1260698.pdf
的形式。

TOP

回复 6楼 的帖子

请把所有的问题描述全部更新到顶楼
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @echo off
  2. for /f "tokens=2,3" %%i in (a.txt) do echo %%i.pdf>>%%j.txt
  3. pause
复制代码

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=2,3 delims= " %%i in (1.txt) do set a=%%j&set a=!a:B=!&echo %%i.pdf >>!a!.txt
  4. pause
复制代码

TOP

返回列表