找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22814|回复: 4

[文本处理] [已解决]批处理如何在KSC文件固定位置批量替换内容

[复制链接]
发表于 2013-3-15 11:23:49 | 显示全部楼层 |阅读模式
本帖最后由 hold2012 于 2013-3-19 05:22 编辑

批处理如何在KSC文件固定位置批量替换内容!

karaoke := CreateKaraokeObject;
karaoke.internalnumber := 806834;  // 歌曲编号
karaoke.rows := 2;
karaoke := CreateKaraokeObject;
karaoke.clear;


karaoke.tag('歌名', '猫鼠之恋');
karaoke.tag('缩写', 'MSZL');
karaoke.tag('歌手', '水水');
karaoke.tag('字数', '4');
karaoke.tag('语种', '国语');
karaoke.tag('歌类', '其他');
karaoke.tag('电影', 'false');
karaoke.tag('风格', '儿歌');
karaoke.tag('流行', 'true');
karaoke.tag('音量', '38');
karaoke.tag('声道', '21');
karaoke.tag('FMP声道', '32');
karaoke.tag('语音', '0');
karaoke.tag('介质', '0');
karaoke.tag('时间', '2013-3-15');
karaoke.tag('歌星拼音', 'SS');
karaoke.tag('原音', '38');
karaoke.tag('伴音', '38');
karaoke.tag('歌词', ' ');
karaoke.tag('亮度', '0');
karaoke.tag('对比度', '0');
karaoke.tag('饱和度', '0');
karaoke.tag('标识', 'MTV');
karaoke.mtvmode :=true;
karaoke.videofilename := '';
karaoke.audiofilename := '*.wav';
karaoke.XSDVideoMode := 0;
karaoke.CommonVideo := '水水-猫鼠之恋(MTV)-国语-806834.mpg';

能不能做个批处理,把多个文件夹下的KSC文件的这行【karaoke.tag('歌名', '猫鼠之恋');】
【');】替换成【(KTV)');

改好后是karaoke.tag('歌名', '猫鼠之恋(KTV)');

多个文件如下:
karaoke := CreateKaraokeObject;
karaoke.internalnumber := 806834;  // 歌曲编号
karaoke.rows := 2;
karaoke := CreateKaraokeObject;
karaoke.clear;


karaoke.tag('歌名', '中国人');
karaoke.tag('缩写', 'MSZL');
karaoke.tag('歌手', '刘德华');
karaoke.tag('字数', '3');
karaoke.tag('语种', '国语');
karaoke.tag('歌类', '其他');
karaoke.tag('电影', 'false');
karaoke.tag('风格', '儿流行');
karaoke.tag('流行', 'true');
karaoke.tag('音量', '38');
karaoke.tag('声道', '21');
karaoke.tag('FMP声道', '32');
karaoke.tag('语音', '0');
karaoke.tag('介质', '0');
karaoke.tag('时间', '2013-3-15');
karaoke.tag('歌星拼音', 'SS');
karaoke.tag('原音', '38');
karaoke.tag('伴音', '38');
karaoke.tag('歌词', ' ');
karaoke.tag('亮度', '0');
karaoke.tag('对比度', '0');
karaoke.tag('饱和度', '0');
karaoke.tag('标识', 'MTV');
karaoke.mtvmode :=true;
karaoke.videofilename := '';
karaoke.audiofilename := '*.wav';
karaoke.XSDVideoMode := 0;
karaoke.CommonVideo := '刘德华-中国人(MTV)-国语-806834.mpg';

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2013-3-15 13:01:56 | 显示全部楼层
改含"歌名"这行???
  1. @echo off
  2. for /f "delims=" %%a in ('dir /b /a-d *.ksc') do (
  3.    (for /f "delims=" %%i in ('findstr /n .* "%%a"') do (
  4.       set "str=%%iA"
  5.       setlocal enabledelayedexpansion
  6.       set "str=!str:*:=!"
  7.       if "!str:'歌名'=!" neq "!str!" (
  8.          set "str=!str:');=(KTV)');!"
  9.          echo;!str:~,-1!
  10.       ) else echo;!str:~,-1!
  11.       endlocal
  12.    ))>$$.tmp
  13.    move $$.tmp "%%a"
  14. )
  15. pause
复制代码
发表于 2013-3-15 13:15:48 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /s /b *.KSC') do (
  4.     (for /f "usebackq tokens=1-2 delims=," %%b in ("%%a") do (
  5.         if "%%c" equ "" (
  6.             echo %%b
  7.         ) else if "%%b" equ "karaoke.tag('歌名'" (
  8.             set str=%%c
  9.             set "str=!str:');=(KTV)');!"
  10.             echo %%b,!str!
  11.         ) else (
  12.             echo %%b,%%c
  13.         )
  14.     ))>%%~na_new.KSC
  15. )
复制代码
 楼主| 发表于 2013-3-18 22:31:16 | 显示全部楼层
回复 2# Marks

是这样得,成功修改好了,谢谢
发表于 2013-3-18 22:53:57 | 显示全部楼层
回复 4# hold2012


    问题解决后,请编辑顶楼帖子在标题前面注明[已解决],并给回答者加分。

评分

参与人数 1技术 +1 收起 理由
hold2012 + 1 乐于助人

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 03:11 , Processed in 0.029708 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表