标题: [文件操作] 那位帮忙写个批量提取多个文本里的特定内容来重命名文本 [打印本页]
作者: bear123 时间: 2013-5-23 23:35 标题: 那位帮忙写个批量提取多个文本里的特定内容来重命名文本
本帖最后由 pcl_test 于 2017-3-20 02:28 编辑
具体是文件的批量文件名重新命名
有一个“150660.KSC”文件,其文件内容具体如下:
karaoke := CreateKaraokeObject;
karaoke.internalnumber := 00000000; // 歌曲编号
karaoke.rows := 2;
karaoke := CreateKaraokeObject;
karaoke.clear;
// 歌曲附加信息(便于检索)
karaoke.tag('歌名', '前世');
karaoke.tag('缩写', 'QS');
karaoke.tag('歌手', '陈慧琳');
karaoke.tag('字数', '2');
karaoke.tag('语种', '粤语');
karaoke.tag('歌类', '男');
karaoke.tag('电影', 'false');
karaoke.tag('风格', '流行');
karaoke.tag('流行', 'true');
karaoke.tag('音量', '130');
karaoke.tag('声道', '1');
karaoke.tag('FMP声道', '32');
karaoke.tag('语音', '0');
karaoke.tag('介质', '10');
karaoke.tag('时间', '2008-9-5');
karaoke.tag('歌星拼音', '');
karaoke.mtvmode :=true;
karaoke.videofilename := '';
karaoke.audiofilename := '*.wav';
karaoke.XSDVideoMode := 4;
karaoke.CommonVideo := '150660.mpg';
我想把150660.KSC文件重新命名为150660-陈慧琳-前世.ksc
那位能否帮忙写一个代码,万分感谢。
我在网上只找到了这个代码(http://zhidao.baidu.com/question/122022750.html)是百度知道中找的,但是根我要求的不一样。
作者: wankoilz 时间: 2013-5-24 00:16
和要处理的文件放在同一目录:- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('dir/a/b/s *.ksc') do (
- for /f "usebackq delims=' tokens=2,4" %%b in ("%%a") do (
- if "%%b"=="歌名" set song=%%c
- if "%%b"=="歌手" set singer=%%c
- )
- ren "%%a" "%%~na-!singer!-!song!%%~xa"
- )
复制代码
作者: terse 时间: 2013-5-24 00:40
- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=1,5 delims=',:)" %%i in ('findstr /il "'歌名' '歌手'" "*.KSC"') do (
- if defined str (
- echo ren "%%i" "%%~ni-!str!-%%j%%~xi"
- set str=
- ) else set str=%%j
- )
- pause
复制代码
作者: bear123 时间: 2013-5-24 06:49
谢谢,两位高手帮忙,我先试一下效果。
万分感谢。
作者: bear123 时间: 2013-5-24 06:51
就是我的要效果,谢谢,太感谢了。谢谢两位高手。
作者: BAT-VBS 时间: 2013-5-24 11:01
回复 5# bear123
问题解决后,请编辑顶楼帖子在标题前面注明[已解决],并给回答者加分。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |