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

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

本帖最后由 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';
1

评分人数

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

回复 4# hold2012


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

评分人数

TOP

回复 2# Marks

是这样得,成功修改好了,谢谢

TOP

  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. )
复制代码

TOP

改含"歌名"这行???
  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
复制代码

TOP

返回列表