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

[文本处理] [已解决]请教文件部分字作符替换的批处理?

karaoke.tag('歌名', '五月的鲜花');
karaoke.tag('缩写', 'WYDXH');
karaoke.tag('歌手', '红兰');
karaoke.tag('字数', '5');
karaoke.tag('语种', '国语');
karaoke.tag('歌类', '男人');
karaoke.tag('电影', 'False');
karaoke.tag('风格', '流行');
karaoke.tag('流行', 'True');
karaoke.tag('音量', '200');
karaoke.tag('声道', '2');
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 := '100484.mpg';

请问如何将最后一行中“100484”替换为第一行中的“五月的鲜花”,这是一堆文件,需要一个批处理程序。请帮忙。.改完应成这样:
karaoke.tag('歌名', '五月的鲜花');
karaoke.tag('缩写', 'WYDXH');
karaoke.tag('歌手', '红兰');
karaoke.tag('字数', '5');
karaoke.tag('语种', '国语');
karaoke.tag('歌类', '男人');
karaoke.tag('电影', 'False');
karaoke.tag('风格', '流行');
karaoke.tag('流行', 'True');
karaoke.tag('音量', '200');
karaoke.tag('声道', '2');
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 := '五月的鲜花.mpg';

[ 本帖最后由 mrhxn 于 2009-9-27 14:08 编辑 ]
1

评分人数

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

第一行和最后一行的文字是未知的还是固定的?
把你原来的样本和替换后的样本都写明,这样大家才能帮你!
有一种爱叫放弃

TOP

不是不是,没明白你什么意思啊

TOP

我的意思是:
想把其中的文件改为汉字,位值固定,内容不一样。每个文件的格式都一样,就是想取出第一行的汉字歌名,然后将最后一行的数字替换成第一行的汉字.改完应成这样:
karaoke.tag('歌名', '五月的鲜花');
karaoke.tag('缩写', 'WYDXH');
karaoke.tag('歌手', '红兰');
karaoke.tag('字数', '5');
karaoke.tag('语种', '国语');
karaoke.tag('歌类', '男人');
karaoke.tag('电影', 'False');
karaoke.tag('风格', '流行');
karaoke.tag('流行', 'True');
karaoke.tag('音量', '200');
karaoke.tag('声道', '2');
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 := '五月的鲜花.mpg';

[ 本帖最后由 mrhxn 于 2009-9-27 10:33 编辑 ]

TOP

第一遍看了你的帖子就云里雾里,所以懒得回你,这样不久很清楚了么,有的时候小懒误大事。本身很简单的问题自己贴出来半天没人回答,别人也白看了,没明白意思还浪费自己时间。这就是提问的哲学和效率。不要图一时之懒惰。假设你所有文本文件都在一个文件夹下,那么下面的代码复制成bat文件也放在这个文件夹下。请注意,你贴出来的文本每行后面都有个空格,代码适用于费空格情况。如果原始代码就是有空格的话自己在代码中相应修改就可。
  1. setlocal enabledelayedexpansion
  2. for %%a in (*.txt) do (
  3.       set /p line1=<%%a>nul
  4.       set "name=!line1:~-8,5!"
  5.       for /f "usebackq delims=;" %%i in ("%%a") do (
  6.             set "mark=%%i"&set "mark=!mark:~-4,3!"echo !mark!&pause
  7.             if not "!mark!"=="mpg" (echo %%i;>>#%%a) else (
  8.                        echo karaoke.CommonVideo := '!name!.mpg';>>#%%a
  9.                        )))
  10. pause
复制代码
1

评分人数

Still with wax

TOP

要删除原始文本和改名新建文本自己添加相应代码,比较简单。
Still with wax

TOP

回复 4楼 的帖子

请把更新的内容,更新到顶楼,方便大家查看。切忌下次提问一次性描述清楚问题。
(*^_^*)

TOP

谢谢解答,谢谢批评指正,问题解决。以后请教时会注意描述问题的条理。

TOP

返回列表