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

[文本处理] BAT脚本如何批量按行合并2个不同文件夹下的同名txt文件

按版主建议,把示例文档和5楼更新后的需求一并上传。

小妹是新手,弄了好几天了,始终搞不定。只有求大神哥哥们帮帮忙了。

我有2个文件夹,下面有大量同名txt文件:
文件夹eng1246的路径 C:\Users\CH6\Desktop\TEDTXTUNICODE\eng1246
文件夹chs1203的路径 C:\Users\CH6\Desktop\TEDTXTUNICODE\chs1203

文件夹eng1246下有1246个txt文件,文件名无规律
文件夹chs1203下有1203个txt文件,基本上每一个在文件夹eng1246下都有对应的同名文件(个别也许没有)

文件夹eng1246里有一些多余文件,在文件夹chs1203下没有对应文件。

现需要把在2个文件夹下的同名文件两两按行合并,形成新的txt文件,仍用原名,输出到一个新的文件夹内(新文件夹路径 C:\Users\CH6\Desktop\TEDTXTUNICODE\merge)。

每一个新文本XXX的格式如下:

文件夹eng1246下文本XXX的第一行  文件夹chs1203下文本XXX的第一行(中间用1个空格隔开)
文件夹eng1246下文本XXX的第二行  文件夹chs1203下文本XXX的第二行(中间用1个空格隔开)
文件夹eng1246下文本XXX的第三行  文件夹chs1203下文本XXX的第三行(中间用1个空格隔开)
。。。
。。。
所有合并后的新文本里的 行号、时间轴、空行 都给删除(此为5楼更新后的需求)

先谢谢各位老大了。

本帖最后由 allenyzq147 于 2018-1-29 23:36 编辑

回复 2# 523066680


    感谢您的回答。

    大神好眼力啊。的确是字幕文件,我是用来做语料库的。

    第一次运行Perl脚本
    我安装了StrawberryPerl,运行脚本后,只生成了一个TEDTXTUNICODE文件夹,这个文件夹下面有一个空的merge文件夹。
    是不是我装的软件不对.

TOP

回复 3# yhcfsr

感谢你了,这位哥哥。文件已成功合并。不然一千多份文件,一行一行,非要了我的小命。

可是,由于我提问之前考虑不够周全,出现了新的问题:行号、时间轴、还有空行,这3行都是不需要的。
只要留一行一行的英文和中文的文字就可以了。

能不能麻烦哥哥你,
再给写个脚本把merge文件夹里所有的文本里的 行号、时间轴、空行 都给删除
或者把刚才的脚本给改一下,我重新合并也可以。

再次感谢!

刚才合并后的每一个新文本,都是下面这样的格式,随机打开了一个,随机复制了几行:

11 11
00:00:39,000 --> 00:00:41,000 00:00:39,000 --> 00:00:41,000
We didn't know 我们不知道

12 12
00:00:41,000 --> 00:00:43,000 00:00:41,000 --> 00:00:43,000
if he had perished yet 是否他还活着

13 13
00:00:43,000 --> 00:00:46,000 00:00:43,000 --> 00:00:46,000
until 36 hours later. 直到事发36小时之后。

最终结果需要是下面的样子:

We didn't know 我们不知道
if he had perished yet 是否他还活着
until 36 hours later. 直到事发36小时之后。

TOP

回复 6# 523066680


    感谢您的耐心,我已经把示例文档和更新后的需求都上传到一楼的附件里了。

更新后的perl脚本我测试了,雷神字幕的确正常合并,但我的字幕合并就是不成功。
按你第一次更新的脚本测试,merge文件夹里出现了合并后的文本,但打开全是乱码。
按你第二次更新的脚本测试,merge文件夹里也出现了合并后的文本,但全是空文本。

TOP

回复 10# yhcfsr


    已经按更新后的脚本成功合并,并删除不需要的行。
    给你一个大大的

    再次表示感谢!

TOP

回复 8# 慕夜蓝化


    感谢您的回复!

我按您第一回复的批处理脚本运行,有窗口显示在处理文本,但近半小时依然没有处理完,不得以暂停、关闭了。merge文件夹里没有得到任何合并后的文本。

第二次更新是java脚本吗,可我并不知道怎么运行。

虽然没成功,依然感谢您的热心。

TOP

回复 15# 523066680

   
    非常感谢版主大人。

    刚测试了你更新后的代码,非常顺利,便于我把一些时间线不匹配的字幕找出来。
   
    这段代码与前面代码区别在哪里?
    你上一段代码只对UTF-8编码的文本起作用吗?

TOP

回复 14# 慕夜蓝化


    作为一个处女座,我还是没忍住安装了JDK,配置了环境变量,测试了那段JAVA代码。

结果
:6:错误:类BRDemo是公共的,应在名为BRDemo.java的文件中声明......bla bla

TOP

回复 18# 523066680


    感谢版主大神这么耐心的解释。

    再次感谢所有答题的哥哥们。

TOP

返回列表