使用Windows命令创建文本文件的块

时间:2015-03-15 13:22:52

标签: batch-file cmd split chunks

我有一个文本文件,其中包含数据格式,如下例所示。

的test.txt

 ABCDEFG.file1
 1239 1240 1242 1391 1392 1394 1486 1487 1489 1600
 3481 3482 3484 3633 3634 3636 3690 3691 3693 3766
 3767 3769 4526 4527 4529 4583 4584 4586 4773 4774
 4776 5153 5154 5156 5628 5629 5631

 ABCDEFG.file2
 1239 1240 1242 1391 1392 1394 1486 1487 1489 1600
 1601 1603 1657 1658 1660 2075 2076 2078 2322 2323
 2325 2740 2741 274................

 ABCDEFG.fileN
 ery 1240 1242 dfhdfh 1392 dfhdfh 1486 dfhdfh dfhdfh 1600
 1601 dfh 1657 1658 1660 2075 2076 2078 2322 2323
 2325 2740 dfhdfh 2743 dfhdfh 3083 3085 3291 3292 3294
 3481 3482 3484 3690 3691 3693 3766 3767 3769 4241
 4242 4244 4526 4527 4529 4583 4584 4586 dfhfh 4774
 4776 5153 5154 5156 54...............

如何根据字符串" ABCDEFG"拆分上述文本文件。并且输出应该如下所示在不同的文件中。

FILE1.TXT

   ABCDEFG.file1
   1239 1240 1242 1391 1392 1394 1486 1487 1489 1600
   3481 3482 3484 3633 3634 3636 3690 3691 3693 3766
   3767 3769 4526 4527 4529 4583 4584 4586 4773 4774
   4776 5153 5154 5156 5628 5629 5631.......

FILE2.TXT

     ABCDEFG.file2
     1239 1240 1242 1391 1392 1394 1486 1487 1489 1600
     1601 1603 1657 1658 1660 2075 2076 2078 2322 2323
     2325 2740 2741 274................

等等.. 我需要在Windows系统中运行。因为源文件的路径是固定的。 可以建议我可以作为批处理文件执行的任何命令。

1 个答案:

答案 0 :(得分:0)

您可以使用字符串操作来拆分ABCDEFG字符串并搜索它。根据您的示例数据,这将创建file1.txt,file2.txt和fileN.txt。

@echo off
setlocal enabledelayedexpansion

for /F "delims=" %%A in (data.txt) do (
    set line=%%A
    set first7=!line:~0,7!
    set last5=!line:~8!

    if [!first7!]==[ABCDEFG] (
        set filename=!last5!.txt
        echo ABCDEFG.!last5!>!filename!
    ) else (
        echo %%A>>!filename!
    )
)