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

[文本处理] 批处理如何处理歌词

本帖最后由 netdzb 于 2021-3-29 13:40 编辑

我还有个问题,这个需求可以用python的迭代的方法完成吗?

原文本文件如下,注意文本是一行的,没有换行的。

[ti:让你感觉我的心再说爱你][ar:彭家丽][al:新曲+精选][offset:0][00:01.51]让你感觉我的心再说爱你 - 彭家丽[00:23.90]不愿说别离 我紧紧拥着你[00:28.57][00:29.57]让你听见我的心 在偷偷的叹息[00:35.50][00:36.19]过去所有的回忆 我会放在我心里[00:41.80][00:42.68]我会永远为你而美丽[00:48.35][00:49.23]不愿道别离 我紧紧吻着你[00:54.59][00:55.47]吻**的忧郁 你的泪滴[01:01.52]在每个深沉夜里 每一个梦里[01:07.95]我会用我的真心好好爱你

要求输出下面的形式

[ti:让你感觉我的心再说爱你]
[ar:彭家丽][al:新曲+精选]
[offset:0]
[00:01.51]让你感觉我的心再说爱你 - 彭家丽
[00:23.90]不愿说别离 我紧紧拥着你
[00:28.57][00:29.57]让你听见我的心 在偷偷的叹息
[00:35.50][00:36.19]过去所有的回忆 我会放在我心里
[00:41.80][00:42.68]我会永远为你而美丽
[00:48.35][00:49.23]不愿道别离 我紧紧吻着
你[00:54.59][00:55.47]吻**的忧郁 你的泪滴
[01:01.52]在每个深沉夜里 每一个梦里
[01:07.95]我会用我的真心好好爱你

不会python,所以溜了……
  1. @set @n=0/*&echo off
  2. dir /a-d/s/b *.txt|cscript -nologo -e:jscript "%~f0"
  3. pause&exit /b */
  4. var fso=new ActiveXObject('scripting.FileSystemObject');
  5. while(!WSH.StdIn.AtEndOfStream)
  6. {
  7. var result='';
  8. file=WSH.StdIn.ReadLine();
  9. fo=fso.OpenTextFile(file,1);
  10. while(!fo.AtEndOfStream)
  11. {
  12. line=(fo.ReadLine()).replace(/(\[ar.+\]\[al.*)/g, '\r\n$1\r\n')
  13.         .replace(/(\[[0-9]+:[0-9]+\.[0-9]+\]|\[offset)/g, '\r\n$1')
  14.         .replace(/(\[[0-9]+:[0-9]+\.[0-9]+\])\r\n/g, '$1');
  15. result+=line+'\r\n';
  16. }
  17. fo.close();
  18. file+='.lrc';
  19. fo=fso.CreateTextFile(file,true,false);
  20. fo.Write(result);
  21. fo.close();
  22. }
复制代码

TOP

返回列表