批处理命令提取文本中某段字符串中间的文字到另一个文件名

文件夹格式如下,要提取entry.json(这个可以用记事本打开)中的"title":"和","total_bytes"中间的文本到同文件夹中MP4扩展名文件的文件名,e... 文件夹格式如下,要提取entry.json(这个可以用记事本打开)中的"title":"和","total_bytes"中间的文本到 同文件夹中MP4扩展名文件的文件名,entry.json文件名是固定的,但是MP4文件的文件名不固定。
http://pan.baidu.com/s/1kUIjfQB,这个是样板。测试用
展开
 我来答
qop_dob
2016-10-26 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.3万
采纳率:79%
帮助的人:3960万
展开全部
@echo off&setlocal enabledelayedexpansion
>$rename.js more +16 "%~f0"
::无误及时采纳回答
::如果文件夹中有entry.json文件则重命名同文件夹里的mp4文件
for /f "delims=" %%a in ('dir /a-d/b/s "entry.json"') do (
    if exist "%%~dpa*.jpg" (
        for /f "delims=" %%b in ('cscript -nologo -e:jscript $rename.js "%%a"') do set "newname=%%b"
        if "!newname!" neq "0" (
            if not exist "!newname!.jpg" (
                ren "%%~dpa*.jpg" "!newname!.jpg" 2>nul
            )
        )
    )
)
del $rename.js
pause&exit
var fso=new ActiveXObject('Scripting.FileSystemObject'),s='';
var f=fso.OpenTextFile(WSH.Arguments(0),1);
var m=f.ReadAll().match(/"title":"[^"]+"|"total_bytes":"[^"]+"/g);
if(m){
    for(var i=0;i<m.length;i++)
    s+=m[i].replace(/.+"([^"]+)"$/,'$1');
    WSH.echo(s?s:0);
}else WSH.echo(0);
追问

那啥,不知为何运行后没有反应

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式