Board logo

标题: 20元求批处理ksc文件名 [打印本页]

作者: sange1963    时间: 2016-6-18 07:04     标题: 20元求批处理ksc文件名

karaoke := CreateKaraokeObject;
karaoke.internalnumber :=1 ;
karaoke.rows := 2;
karaoke := CreateKaraokeObject;
karaoke.clear;

// 本文件自动生成于 礼光KSC批量生成工具 By QQ:786151 5
//     QQ:7861515      Mail:putinit@163.com     旺旺:Putinit

// Http://www.7 861515.cn  Http://Shop33706607.Taobao.com

// 歌曲附加信息(便于检索)
karaoke.tag('歌名', '2011年12月DJ串烧2');
karaoke.tag('缩写', 'ELYYNYEYDJCSE');
karaoke.tag('歌手', '佚名');
karaoke.tag('字数', '13');
karaoke.tag('语种', '国语');
karaoke.tag('歌类', '其它');
karaoke.tag('电影', 'false');
karaoke.tag('风格', '流行');
karaoke.tag('流行', 'true');
karaoke.tag('音量', '70');
karaoke.tag('声道', '21');
karaoke.tag('FMP声道', '32');
karaoke.tag('语音', '0');
karaoke.tag('介质', 'true');
karaoke.tag('时间', '2016-06-18');
karaoke.tag('歌星拼音', 'YM');
karaoke.mtvmode :=true;
karaoke.videofilename := '';
karaoke.audiofilename := '*.wav';
karaoke.XSDVideoMode := 4;
karaoke.CommonVideo := '2011年12月DJ串烧2(欣赏版).mpg';

求高手:1、把这段(// 本文件自动生成于 礼光KSC批量生成工具 By QQ:786151 5
//     QQ:7861515      Mail:putinit@163.com     旺旺:Putinit

// Http://www.7 861515.cn  Http://Shop33706607.Taobao.com)从ksc文件里删除
2、就是:例如这个ksc文件的文件名为20002361,
需要把:karaoke.internalnumber :=1 ;中那个(1)改为这个20002361ksc文件名
           karaoke.CommonVideo := '2011年12月DJ串烧2(欣赏版).mpg'; 中那个(2011年12月DJ串烧2(欣赏版))改为这个20002361ksc文件名
作者: pcl_test    时间: 2016-6-18 13:29

本帖最后由 pcl_test 于 2016-6-18 19:56 编辑

第三方路过
  1. set "ksc=20002361.ksc"
  2. rem set "tksc=%ksc:~,-4%"
  3. for /f "delims=" %%a in ("%ksc%") do set "name=%%~na"
  4. sed -i "/^[ \t]*\/\//d;s/\(karaoke.CommonVideo :=\).*/\1'%name%';/;s/\(karaoke.internalnumber :=\).*/\1%name%;/" "%ksc%"
  5. pause
复制代码

作者: sange1963    时间: 2016-6-18 14:06

回复 2# pcl_test


    老师您好,您给我的这个批处理文件处理不了,谢谢
作者: 小程936    时间: 2016-6-18 19:46

本帖最后由 小程936 于 2016-6-18 19:49 编辑
  1. @echo off&title 文件处理【小程936 QQ1781047213】
  2. echo 直接拖拽文件夹到本文件上方即可使用。
  3. echo 20元求批处理ksc文件名 @sange1963
  4. set ttt=%1
  5. set tt=%2
  6. if not DEFINED tt Setlocal enabledelayedexpansion
  7. if not DEFINED ttt goto 7
  8. (cd /d %1)||(echo cd-目录不存在&pause>nul&exit)
  9. set /a ab=-2,ad=-1
  10. :1
  11. echo 处理中……
  12. (for /f "delims=" %%i in ('dir /b /a-d /s *.ksc') do if not "%%i"=="" (set xn=%%~ni)&call :2 ) >nul 2>&1
  13. echo 批量修改完成。&start "" %ttt%
  14. pause>nul&exit
  15. :2
  16. for /f "delims=" %%z in (%xn%.ksc) do (set az=%%z)&call :小程936
  17. (del %xn.ksc%)&ren %xn%.1 %xn%.ksc
  18. goto :eof
  19. :小程936
  20. for /f "delims==" %%a in ("%az%") do (set aa=%%a)
  21. for /f "tokens=3 delims=." %%a in ("%az%") do (set aaa=%%a)
  22. >>%xn%.1 (if "%aa:~,2%" == "//" goto :eof
  23. if "%aa%" == "karaoke.internalnumber :" (echo+karaoke.internalnumber :=%xn%;)&goto :eof
  24. if "%aa%" == "karaoke.CommonVideo :" (echo+karaoke.CommonVideo :='%xn%.%aaa%)&goto :eof
  25. (echo+%az%)&goto :eof)
  26. goto :eof
  27. :7
  28. set /p ttt=
  29. if not DEFINED ttt goto 7
  30. call %0 %ttt% 1
  31. exit
复制代码

作者: 再世情緣    时间: 2016-6-18 20:37

  1. @echo off &color 0a &setlocal enabledelayedexpansion
  2. pushd "%cd%"
  3. for /f "delims=" %%A in ('dir /s /b /a -d "*.ksc" 2^>nul') do (
  4. set "nm=%%~fA" & set "kscnm=%%~nA"
  5. cd.>"!nm!.txt"
  6. for /f "usebackq eol=/ tokens=1,2* delims=:" %%a in ("%%~fA") do (
  7. if "#%%a#" EQU "#karaoke.internalnumber #" (
  8. (echo.%%a:=!kscnm! ;)>>"!nm!.txt"
  9. ) else (
  10. if "#%%a#" EQU "#karaoke.CommonVideo #" (
  11. (echo.%%a:='!kscnm!';)>>"!nm!.txt"
  12. ) else (
  13. if "%%b" EQU "" ((echo.%%a)>>"!nm!.txt") else ((echo.%%a:%%b)>>"!nm!.txt")
  14. )
  15. )
  16. )
  17. move /y "!nm!.txt" "!nm!" >nul 2>nul
  18. )
  19. pause.
复制代码
放在ksc文件夹里运行即可
作者: sange1963    时间: 2016-6-18 23:11

再世情緣老师,您的这个批文件可以转换成数字歌名,但是-----{// 歌曲附加信息(便于检索)}必须要,不然这个文件就不能用了,非常感谢!
作者: sange1963    时间: 2016-6-18 23:30

本帖最后由 sange1963 于 2016-6-18 23:37 编辑

karaoke := CreateKaraokeObject;
karaoke.internalnumber :=20006615 ;
karaoke.rows := 2;
karaoke := CreateKaraokeObject;
karaoke.clear;                                                                           




// 歌曲附加信息(便于检索)
karaoke.tag('歌名', '给我一个理由忘记');
karaoke.tag('缩写', 'GWYGLYWJ');
karaoke.tag('歌手', 'A Lin 陈嘉欣 李林涛 黄菁');
karaoke.tag('字数', '8');
karaoke.tag('语种', '国语');
karaoke.tag('歌类', '其它');
karaoke.tag('电影', 'false');
karaoke.tag('风格', '流行');
karaoke.tag('流行', 'true');
karaoke.tag('音量', '70');
karaoke.tag('声道', '12');
karaoke.tag('FMP声道', '32');
karaoke.tag('语音', '0');
karaoke.tag('介质', 'true');
karaoke.tag('时间', '2016-06-18');
karaoke.tag('歌星拼音', 'ALINCJXLLTHJ');
karaoke.mtvmode :=true;
karaoke.videofilename := '';
karaoke.audiofilename := '*.wav';
karaoke.XSDVideoMode := 4;
karaoke.CommonVideo :='20006615';

需要改为这样,谢谢了
作者: WHY    时间: 2016-6-19 01:02

  1. @if (0)==(0) echo off
  2. dir /b *.ksc | cscript //nologo //e:jscript "%~f0"
  3. pause & exit
  4. @end
  5. var getContent = function(strFile){
  6.     var n = strFile.replace(/(.+)\..+$/, '$1');
  7.     var objFile = fso.OpenTextFile(strFile, 1);
  8.     var s = objFile.ReadAll().replace(/^\/\/(?!\s*歌曲附加信息).*\n/mg, '');
  9.     s = s.replace(/^(karaoke\.internalnumber *: *=)[^\r\n]*/im, '$1' + n + ';');
  10.     s = s.replace(/^(karaoke\.CommonVideo *: *=)[^\r\n]*/im, "$1'" + n + "';");
  11.     objFile.Close();
  12.     fso.OpenTextFile(strFile, 2).Write(s);
  13. }
  14. var fso = new ActiveXObject('Scripting.FileSystemObject');
  15. while(!WSH.StdIn.AtEndOfStream) { getContent( WSH.StdIn.ReadLine()); }
复制代码

作者: 再世情緣    时间: 2016-6-19 02:27

  1. @echo off &color 0a &setlocal enabledelayedexpansion
  2. pushd "%cd%"
  3. for /f "delims=" %%A in ('dir /s /b /a -d "*.ksc" 2^>nul') do (
  4. set "nm=%%~fA" & set "kscnm=%%~nA"
  5. cd.>"!nm!.txt"
  6. for /f "usebackq tokens=1,2* delims=:" %%a in ("%%~fA") do (
  7. set "ln0=%%a:%%b"
  8. if "!ln0:~-1!" EQU ":" (set "ln0=%%a")
  9. if "!ln0:~,2!" EQU "//" (
  10. echo.!ln0! |findstr "歌曲附加信息(便于检索)" >nul &&(echo.!ln0!)>>"!nm!.txt"
  11. ) else (
  12. if "#%%a#" EQU "#karaoke.internalnumber #" (
  13. (echo.%%a:=!kscnm! ;)>>"!nm!.txt"
  14. ) else (
  15. if "#%%a#" EQU "#karaoke.CommonVideo #" (
  16. (echo.%%a:='!kscnm!';)>>"!nm!.txt"
  17. ) else (
  18. (echo.!ln0!)>>"!nm!.txt"
  19. )
  20. )
  21. )
  22. )
  23. move /y "!nm!.txt" "!nm!" >nul 2>nul
  24. )
  25. pause.
复制代码

作者: WHY    时间: 2016-6-19 19:34

  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /b *.ksc') do (
  3.     (for /f "delims=" %%j in ('findstr /n .* "%%i"') do (
  4.         set "s=%%j"
  5.         set "s=!s:*:=!"
  6.         for /f "tokens=1-3" %%i in ("!s!#") do set "s1=%%i%%j%%k"
  7.         if /i "!s1:~0,24!" == "karaoke.internalnumber:=" (
  8.             echo;karaoke.internalnumber :=%%~ni;
  9.         ) else if /i "!s1:~0,21!" == "karaoke.CommonVideo:=" (
  10.             echo;karaoke.CommonVideo :='%%~ni';
  11.         ) else if "!s1:~0,8!" == "//歌曲附加信息" (
  12.             echo;!s!
  13.         ) else if not "!s1:~0,2!" == "//" echo;!s!
  14.     ))>~tmp.$
  15.     move ~tmp.$ "%%i"
  16. )
  17. pause
复制代码

作者: WHY    时间: 2016-6-20 18:28

2016-6-19
sange1963 2016-6-19 17:39
您好,我是在批处理论坛里求改ksc文件的,麻烦你加我QQ358502338

WHY 2016-6-19 19:31
我不用QQ,有问题可以站内短信联系,或直接在帖子里回复

2016-6-20
sange1963 2016-6-20 17:22
老师,你发的那个批处理文件可以删除那个广告信息也可以转换为数字,但是把最后一排的mpg除掉了,最后排应该这样karaoke.CommonVideo := '200001234.mpg';还有等于号后面是有空格的。麻烦你加我QQ嘛,我把原始文件发给你看看,谢谢您了。


我不用QQ,也从未想过要安装QQ,可以把附件发到这里
作者: sange1963    时间: 2016-6-20 22:20

回复 11# WHY


    哦,知道了




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2