|
wj36000
新手上路
积分 6
发帖 6
注册 2009-12-11
状态 离线
|
『楼 主』:
求个根据文本内容重命名的批处理,谢谢了!
文本文件的内容为:
karaoke.tag('歌名', '追钟');
karaoke.tag('缩写', 'ZZ');
karaoke.tag('歌手', '张学友');
karaoke.tag('字数', '2');
karaoke.tag('语种', '粤语');
karaoke.tag('歌类', '男');
文本文件的文件名为数字,可不可以制作一个根据这个文本的内容重命名这个文本文件得批处理?
比如文件名是001.txt,根据这个文本内容的第三行和第一行‘’中的字重命名为张学友-追钟.txt
本人超级菜,希望大家帮忙!谢谢了
|
|
2009-12-12 20:19 |
|
|
不得不爱
超级版主
我爱DOS
积分 5310
发帖 2044
注册 2005-9-26 来自 四川南充
状态 离线
|
|
2009-12-12 21:30 |
|
|
wj36000
新手上路
积分 6
发帖 6
注册 2009-12-11
状态 离线
|
『第
3 楼』:
版主真是热心人啊,我试了,确实可行!
还有一个情况,就是在文件夹下有一个和这个文本文件文件名一样的视频文件,可不可以修改一下这个命令,然后可以同时重命名这两个文件?
比如说这个文件夹下有:
123.txt和123.mkv,其中123.txt的内容为:
........................................................................
karaoke.tag('歌名', '爱是全奉献');
karaoke.tag('缩写', 'ASQFX');
karaoke.tag('歌手', '郭富城');
karaoke.tag('字数', '5');
karaoke.tag('语种', '粤语');
karaoke.tag('歌类', '男');
.........................................................................
然后根据123.txt文件中第一行和第三行中' '的内容,重命名123.txt和123.mkv为:郭富城-爱是全奉献.txt和郭富城-爱是全奉献.mkv
再次感谢,帮了我大忙了!
[ Last edited by wj36000 on 2009-12-13 at 00:13 ]
|
|
2009-12-12 23:36 |
|
|
Hanyeguxing
银牌会员
正在学习中的菜鸟...
积分 1039
发帖 897
注册 2009-3-1 来自 在地狱中仰望天堂
状态 离线
|
『第
4 楼』:
@echo off&SETLOCAL ENABLEDELAYEDEXPANSION
for /r %%c in (*.txt) do (set a=1
for /f "tokens=4 delims='" %%a in ('type "%%c"') do (if !a!==1 set b=%%a
if !a!==3 (ren "%%c" %%a-!b!.txt
set c=%%c
ren "!c:~0,-4!.mkv" %%a-!b!.mkv)
set/a a+=1)) [ Last edited by Hanyeguxing on 2009-12-13 at 01:20 ]
|
批处理之家 http://bbs.bathome.net/forum-5-1.html |
|
2009-12-13 00:57 |
|
|
wj36000
新手上路
积分 6
发帖 6
注册 2009-12-11
状态 离线
|
『第
5 楼』:
多谢楼上的,验证可行,让我本来打算一年完成的工作十几分钟就搞定了:)
|
|
2009-12-13 10:27 |
|
|
不得不爱
超级版主
我爱DOS
积分 5310
发帖 2044
注册 2005-9-26 来自 四川南充
状态 离线
|
|
2009-12-13 15:22 |
|
|
523066680
银牌会员
SuperCleaner
积分 2362
发帖 1133
注册 2008-2-2
状态 离线
|
|
2009-12-13 15:58 |
|
|
wj36000
新手上路
积分 6
发帖 6
注册 2009-12-11
状态 离线
|
『第
8 楼』:
多谢超版以及Hanyeguxing帮我弄的批处理,经我使用,发现Hanyeguxing
朋友的批处理对含空格的英文内容不能处理,而超版的可以,不过还是谢谢两位:)
由于我的疏忽,有一处遗漏,还请大家再帮一次忙。
假如说文件夹下有123.txt和123.mkv两个文件,其中123.txt文件文本文件内容如下:
....................................................................
karaoke.tag('歌名', '他的女人');
karaoke.tag('缩写', 'TDNR');
karaoke.tag('歌手', '刘德华');
karaoke.tag('字数', '4');
karaoke.tag('语种', '粤语');
karaoke.tag('歌类', '男');
karaoke.tag('电影', 'false');
karaoke.tag('风格', '怀旧歌');
karaoke.tag('流行', 'true');
karaoke.tag('音量', '0');
karaoke.tag('声道', '21');
karaoke.tag('FMP声道', '32');
karaoke.tag('语音', '0');
karaoke.tag('介质', '0');
karaoke.tag('时间', '2000-1-1');
karaoke.tag('歌星拼音', '');
karaoke.mtvmode :=true;
karaoke.videofilename := '';
karaoke.audiofilename := '*.wav';
karaoke.XSDVideoMode := 4;
karaoke.CommonVideo := '123.MKV';
..........................................................................
除了需要想前面一样根据内容修改文本文件和视频文件名以外,还需要修改文本文件最后一行 '123.MKV'为和视频文件一样的文件名,就像是:
karaoke.CommonVideo := '刘德华-他的女人.MKV';
再次感谢!
[ Last edited by wj36000 on 2009-12-13 at 19:58 ]
|
|
2009-12-13 19:31 |
|
|
fengwuxzg
新手上路
积分 12
发帖 11
注册 2009-11-28
状态 离线
|
『第
9 楼』:
菜鸟一个,试着写了下,测试可用
@echo off&setlocal enabledelayedexpansion
for %%a in (*.txt) do (set /a l=1
echo %%a
for /f "tokens=4 delims='" %%b in ('type %%a') do (if !l!==1 set j=%%b
set /a l+=1
if !l!==4 (ren %%a %%b-!j!.txt
ren %%~na.mkv %%b-!j!.mkv
for /f "tokens=1* delims=:" %%c in (%%b-!j!.txt) do (if /i "%%c" equ "karaoke.CommonVideo " (
echo karaoke.CommonVideo := '%%b-!j!.MKV';>>temp.txt)
if /i "%%c" neq "karaoke.CommonVideo " echo %%c%%d>>temp.txt
)
type temp.txt>%%b-!j!.txt
del temp.txt
)
)
echo %%a OVER!!
)
pause [ Last edited by fengwuxzg on 2009-12-14 at 16:29 ]
|
|
2009-12-14 11:24 |
|
|
wj36000
新手上路
积分 6
发帖 6
注册 2009-12-11
状态 离线
|
『第
10 楼』:
多谢楼上的兄台,批处理可用!只是一次只能处理两个文件,能不能修改一下运行一次可以处理当前文件夹里所有同类的文件啊?还有就是不能处理含空格的英文内容,提示语法错误,不过这个是小问题,不影响使用:)
[ Last edited by wj36000 on 2009-12-14 at 12:35 ]
|
|
2009-12-14 12:27 |
|
|
fengwuxzg
新手上路
积分 12
发帖 11
注册 2009-11-28
状态 离线
|
『第
11 楼』:
。。。。。
囧
LZ,原帖已修改
|
|
2009-12-14 14:36 |
|
|
wj36000
新手上路
积分 6
发帖 6
注册 2009-12-11
状态 离线
|
|
2009-12-14 14:51 |
|