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

[文本处理] [已解决]批处理对文件夹内按要求删除和重命名以处理句库

我有一个复读软件,它可以生成句库,句库是一个个的mp3文件,这些mp3文件都是像这样命名的(我列举二组例子来说明),这个软件按lrc歌词文件的断点,用lrc句子的文本加上句子序号和复制序号,生成相应的mp3文件组,所有文件都在一个文件夹下。
这个软件命名和生成的规则是这样的:
所有文件在同一文件夹下
这个软件按组生成mp3文件,每组包含若干个句子
每个文件的命名规则是这样的:句子序号1(红色部分)+句子主体+句子序号2(红色部分)
例子一组:
01As Valentine’s Day approaches, lovers everywhere are preparing for the most romantic day of the year  0.mp3
01As Valentine’s Day approaches, lovers everywhere are preparing for the most romantic day of the year 1.mp3
01As Valentine’s Day approaches, lovers everywhere are preparing for the most romantic day of the year  2.mp3
01As Valentine’s Day approaches, lovers everywhere are preparing for the most romantic day of the year  3.mp3
01As Valentine’s Day approaches, lovers everywhere are preparing for the most romantic day of the year  4.mp3
例子二组:
14'This is a private conversation!'0.mp3
14'This is a private conversation!'1.mp3
14'This is a private conversation!'2.mp3
14'This is a private conversation!'3.mp3
14'This is a private conversation!'4.mp3
我希望求一个批处理:
使得每组句子无论有几个都好,经过处理后,
(1)每组句子都只剩下一个句子(其余的都被删掉了),红色部分的句子序号都被去掉。
(2)注意到这个软件软件有一个bug,在句子序号2中,有些是空一格后再加(如例子组一),有些却不是(如例子组二),我想在,经过处理后,扩展名前面的空格都被去掉。
(3)这个软件有一个bug,转换后会把原文最后的句号去掉,所以要在表示扩展名的一点再加一点表示句号。
即是说最后,这两组文件会变为:

As Valentine’s Day approaches, lovers everywhere are preparing for the most romantic day of the year..mp3
(注意到扩展名前空格没有了,也加上一个句号了)
'This is a private conversation!'..mp3
(注意到扩展名前空格没有了,也加上一个句号了)
1

评分人数

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

再一次感谢版主

TOP

已经可以了,成功了,觉得版主你人很好,很有耐心。祝你心想事成。

TOP

又修改了一次,刚才漏了一个字符^_^
技术问题请到论坛发帖求助!

TOP

回复 15楼 的帖子

以找到原因,并修改了12楼的代码,你再试试。。。
技术问题请到论坛发帖求助!

TOP

高手你好,已经测试了,请看

TOP

12楼代码重新编辑过,你再重新复制代码,测试一次好吗
技术问题请到论坛发帖求助!

TOP

原帖由 随风 于 2009-4-22 17:43 发表
未测试,测试时先备份所有文件。。切记。。。。。
echo off&set . .=a
for /l %%a in (0 1 9) do set .%%a.=a
for /f "delims=" %%a in ('dir/b/a-d *.mp3') do (
   set "num=%%~na"
   setlocal enabledela ...

1.高手你好,运行后显示“命令语法不正确”。
2.有一组句子没有修改。

TOP

未测试,测试时先备份所有文件。。切记。。。。。
:
  1. @echo off&set . .=a
  2. for /l %%a in (0 1 9) do set .%%a.=a
  3. for /f "delims=" %%a in ('dir/b/a-d *.mp3') do (
  4.    set "num=%%~na"&set "num2=%%a"
  5.    setlocal enabledelayedexpansion
  6.    call :loop1
  7.    if not exist "!Num!..mp3" (ren "!num2!" "!Num!..mp3") else (del /q "!num2!")
  8.    endlocal
  9. )
  10. pause&exit
  11. :loop1
  12.    set "var1=!num:~0,1!"
  13.    if defined .!var1!. set "num=!num:~1!"&goto loop1
  14. :loop2
  15.    set "var2=!num:~-1!"
  16.    if defined .!var2!. set "num=!num:~0,-1!"&goto loop2
  17. goto :EOF
复制代码

[ 本帖最后由 随风 于 2009-4-22 18:17 编辑 ]
技术问题请到论坛发帖求助!

TOP

原帖由 随风 于 2009-4-22 16:42 发表
以你顶楼截图的 I turned round again..mp3 为例
首先你的文件夹内有
11I turned round again 0.mp3
11I turned round again 1.mp3
11I turned round again 2.mp3
11I turned round again 3.mp3
11I turned ro ...


删掉了4个,重命名了一个。以顶楼截图为例子,重命名哪一个都无所谓,只要最后结果目录下有两个文件,这两个文件都符合要求就行了。谢谢你的耐心。谢谢你

[ 本帖最后由 ax2623682 于 2009-4-22 16:52 编辑 ]

TOP

以你顶楼截图的 I turned round again..mp3 为例
首先你的文件夹内有
11I turned round again 0.mp3
11I turned round again 1.mp3
11I turned round again 2.mp3
11I turned round again 3.mp3
11I turned round again 4.mp3
这5个mp3文件,重命名后就只有一个 I turned round again..mp3 文件了。
那么你一定是删除了4个文件,重命名了一个文件,是吗?
那么你是把这5个文件中的哪一个改了名呢?
技术问题请到论坛发帖求助!

TOP

大家都糊涂,发一个句库文件的截图

见顶楼

[ 本帖最后由 Batcher 于 2009-4-25 00:25 编辑 ]

TOP

越来越糊涂了,难道你说的 例子一组、例子二组 这些内容是在一个文本里?
你的目的是先去掉这个文本中这些内容的序号及重复行?
技术问题请到论坛发帖求助!

TOP

末尾的数字是否都只有一位?开头的数字是否只有两位

[ 本帖最后由 tireless 于 2009-4-22 16:11 编辑 ]

TOP

回复 5楼 的帖子

也即是先删除后进行其他操作,总之最后,这两组文件会变为:
As Valentine’s Day approaches, lovers everywhere are preparing for the most romantic day of the year..mp3
(注意到扩展名前空格没有了,也加上一个句号了)
'This is a private conversation!'..mp3
(注意到扩展名前空格没有了,也加上一个句号了)

TOP

返回列表