标题: [文本处理] 【更新了问题】如何用批处理实现自动下载网络视频? [打印本页]
作者: 宫商角徵羽 时间: 2015-1-12 18:27 标题: 【更新了问题】如何用批处理实现自动下载网络视频?
原问题1.0:
喜欢在网络上看电视,比如 :央视的《环球财经连线》连接:http://cctv.cntv.cn/lm/huanqiucaijinglianxian/ (该地址每一期并不改变)
可是,央视不提供直接下载,于是转到第三方网站“硕鼠官网” www.flvcd.com/
输入《环球财经连线》的地址就会得到其真实地址了:
解析连接: http://www.flvcd.com/parse.php?f ... t=%BF%AA%CA%BCGO%21
可以看到该视频被切分成了8段,通过近几期的观察,其中的规律就在于后面的1、2、3、4、5、6、7、8、不同,那么好了,下载不就可以批处理了吗?
http://vod.cntv.lxdns.com/flash/ ... 000nero_aac32-1.mp4
http://vod.cntv.lxdns.com/flash/ ... 000nero_aac32-2.mp4
http://vod.cntv.lxdns.com/flash/ ... 000nero_aac32-3.mp4
http://vod.cntv.lxdns.com/flash/ ... 000nero_aac32-4.mp4
http://vod.cntv.lxdns.com/flash/ ... 000nero_aac32-5.mp4
http://vod.cntv.lxdns.com/flash/ ... 000nero_aac32-6.mp4
http://vod.cntv.lxdns.com/flash/ ... 000nero_aac32-7.mp4
http://vod.cntv.lxdns.com/flash/ ... 000nero_aac32-8.mp4
那么问题来了?如何通过批处理实现运行命令自动下载当天的视频?
最后再将8段视频重命名为 日期-01。。。日期-08的mp4.
感谢5楼terse完美地解决了该问题,同时让我看到了批处理更迷人的一面,谢谢!
------------------------------问题2.0------------------------华丽的分割线-------------------------------------------------------------------------
后来,我发现,从《环球财经连线》的地址http://cctv.cntv.cn/lm/huanqiucaijinglianxian/ 直接解析出现了问题:
因为,该节目一天中有“午间版”、“晚间版”两个版块,于是在上述地址页面中看到了如下代码:
2015.01.13午间版:http://jingji.cntv.cn/2015/01/13/VIDE1421126100885196.shtml
2015.01.12晚间版:http://jingji.cntv.cn/2015/01/13/VIDE1421105440961859.shtml (也许央视网管程序管理有问题,日期不匹配)
用http://cctv.cntv.cn/lm/huanqiucaijinglianxian 在硕鼠网上直接解析出来的是昨天晚上的视频,不是今天中午最新的
其实我想下载的是最近一期的(刚更新的一期2015.01.13午间版)就要用到 http://jingji.cntv.cn/2015/01/13/VIDE1421126100885196.shtml 这个地址。
而这个地址需要从上述http://cctv.cntv.cn/lm/huanqiucaijinglianxian/ 页面代码中提取,那么问题又来了:
如何在固定地址 http://cctv.cntv.cn/lm/huanqiucaijinglianxian/ 中提取出最新一期视频连接,把该连接放到第三方网站“硕鼠官网” www.flvcd.com/ 中解析出视频地址,最后再下载下来?
这样,就可以实现:在下午就可以下载当天的午间版;在深夜就可以下载当天的晚间版了;
感谢amwfjhh不厌其烦地、完美地解决了该问题,谢谢!
------------------------------问题3.0------------------------华丽的分割线-------------------------------------------------------------------------
再以上两问题实现的最后,又如何将8段视频合并成一个整体,MP4格式(或其它用批处理可以实现的方式)
话说,这个问题是不是有点儿难为批处理了? 呵呵。等待大牛出现。。。
作者: CrLf 时间: 2015-1-12 19:39
可以暴力一点:- @echo off
- set "年=%date:~0,4%"
- set "月=%date:~5,2%"
- set "日=%date:~8,2%"
- for /l %%a in (1 1 16) do down http://vod.cntv.lxdns.com/flash/mp4video38/TMS/%年%/%月%/%日%/aa7bf38105cc4efab5ccb038cd9903bc_h264418000nero_aac32-%%a.mp4 aa7bf38105cc4efab5ccb038cd9903bc_h264418000nero_aac32-%%a.mp4 2>nul
复制代码
这个 down 换成 wget curl 什么的也都行
down.exe 下载
支持http的文件下载工具 - Filedownloader
wget下载
curl下载
作者: tmplinshi 时间: 2015-1-12 21:21
http://vod.cntv.lxdns.com/flash/mp4video38/TMS/2015/01/11/aa7bf38105cc4efab5ccb038cd9903bc_h264418000nero_aac32-1.mp4
红色字体部分每天是不一样的。
作者: DAIC 时间: 2015-1-12 22:23
抛砖引玉- wget -q "http://www.flvcd.com/parse.php?format=&kw=http%%3A%%2F%%2Fcctv.cntv.cn%%2Flm%%2Fhuanqiucaijinglianxian%%2F" -O - | sed "/下载地址:/!d; s/href=./\n/g" | sed "/http:/!d; s/. target=.*//" > 地址.txt
复制代码
作者: terse 时间: 2015-1-13 11:42
也来一个 需下载外部 wget.exe- @if(0)==(0) echo off
- CScript.exe -NoLogo -E:JScript %0 >$
- for /f "tokens=1*" %%i in ($) do wget -c -O %%i %%j
- del $ & pause & exit
- @end
-
- var url = "http://www.flvcd.com/parse.php?format=&kw=http%3A%2F%2Fcctv.cntv.cn%2Flm%2Fhuanqiucaijinglianxian%2F&sbt=%BF%AA%CA%BCGO%21"
- var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
- xmlhttp.open("Get",url,false);
- xmlhttp.send();
-
- var html = new ActiveXObject("htmlfile");
- html.write(xmlhttp.responseText);
- var text = html.getElementsByTagName('a');
- var len = text.length;
- var date = new Date();
- var y = date.getFullYear();
- var m = (date.getMonth()+1)>9?(date.getMonth()+1):'0' + (date.getMonth()+1);
- var d=date.getDate()>9?date.getDate():'0' + date.getDate();
- var name = '' + y + m + d + '-'
- for (i=0; i<len; i++) {
- if (text[i].onclick) {
- var str = '' + text[i]
- var filename = name + str.replace(/.+?([^ -]*)$/,'$1');
- WScript.Echo(filename,str)
- };
- };
复制代码
作者: amwfjhh 时间: 2015-1-13 13:35
正则用得好,批量没烦恼……
作者: 宫商角徵羽 时间: 2015-1-13 23:10
回复 5# terse
这代码写的。。。。太赞了!!非常感谢!!
当然,没怎么看懂,对CScript 还很陌生,不过看到你的代码更觉得批处理这东西真的很赞!
请教一下:
第2行: -E:JScript %0 部分应该如何理解?(只知道生成了以$命名的文件中,形成了下载列表)
第8行: new ActiveXObject("Microsoft.XMLHTTP") 是不是所谓的创建XMLHttpRequset对象?不明白程序是如何运行的
第13行:.write(xmlhttp.responseText) 不明白
因为对CScript还很陌生,不知道要理解该程序还应该补习哪些知识(或者说是哪一方面),特此请教!
作者: Batcher 时间: 2015-1-14 13:45
回复 7# 宫商角徵羽
VBS和JScript相关教程:
http://bbs.bathome.net/thread-13298-1-1.html
作者: amwfjhh 时间: 2015-1-14 15:08
来一个纯脚本版的,只需要只支BAT与JScript,无需第三方wget或者Curl.- @if (0)==(0) echo off
- setlocal enabledelayedexpansion
-
- cscript -nologo -e:jscript %~s0 GetWebContent "http://cctv.cntv.cn/lm/huanqiucaijinglianxian/" "$"
- set /a index=0
- for /f "delims=" %%i in ('cscript -nologo -e:jscript %~s0 GetRegStr "$" "<BR><a\shref='([^']+)'[^>]+>[^<]+</a>"') do (
- set /a index+=1
- echo,!index! : %%i
- CScript -nologo -E:jscript %~s0 DownloadFile "%%i" "%cd%\!index!.mp4"
- )
-
- :end
- pause & goto :EOF
-
- @end
-
- var fun = WScript.arguments(0);
- switch (fun){
- case "GetWebContent":
- if (WScript.arguments.length < 3) {
- WScript.Echo("参数个数错误");
- WScript.quit();
- }
- var url = WScript.arguments(1);
- var fil = WScript.arguments(2);
- GetWebContent(GetEncodeURIComponentStr(url), fil);
- break;
-
- case "DownloadFile":
- if (WScript.arguments.length < 3) {
- WScript.echo("参数个数错误");
- WScript.quit();
- }
- var url = WScript.arguments(1);// + "?wshc_tag=1&wsts_tag=54b5d817&wsid_tag=abd9364e&wsiphost=ipdbm";
- var fil = WScript.arguments(2);
- GetWebContent(url, fil);
- break;
-
- case "GetEncodeURIComponentStr":
- if (WScript.arguments.length < 2) {
- WScript.echo("参数个数错误");
- WScript.quit();
- }
- var url = WScript.arguments(1);
- GetEncodeURIComponentStr(url);
- break;
-
- case "GetFileContent":
- if (WScript.arguments.length < 2) {
- WScript.Echo("参数个数错误");
- WScript.quit();
- }
- var fil = WScript.arguments(1);
- GetFileContent(fil);
- break;
-
- case "GetRegStr":
- if (WScript.arguments.length < 3) {
- WScript.Echo("参数个数错误");
- WScript.quit();
- }
- var fil = WScript.arguments(1);
- var regStr = WScript.arguments(2);
- regStr = regStr.replace(/'/g, "\"");
- GetRegStr(fil, regStr);
- break;
-
- default:;
- }
-
-
- function GetEncodeURIComponentStr(URL){
- var encodeUrl = encodeURIComponent(url);
- var webUrl = "http://www.flvcd.com/parse.php?format=&kw="
- webUrl += encodeUrl;
- WScript.echo(webUrl);
- return webUrl;
- }
-
- function GetWebContent(url, fileName){
- try{
- var oHttp = new ActiveXObject("MSXML2.ServerXMLHTTP");
- oHttp.open("Get", url, false);
- WScript.echo("进入函数,传入参数为:" + url);
- oHttp.send("");
-
-
- if (oHttp.readyState == 4) {
- WScript.echo("内容获取完毕");
- //WScript.echo(oHttp.responseText);
- var oStream = new ActiveXObject("adodb.stream");
- oStream.Open();
- oStream.Type = 1;
- oStream.Write(oHttp.responseBody);
- oStream.Position = 0;
-
- var fso = new ActiveXObject("scripting.filesystemobject");
- if (fso.fileExists(fileName)) fso.deleteFile(fileName);
-
- oStream.SaveToFile(fileName);
- WScript.Echo("写入文件:" + fileName);
- oStream.close();
- } else {
- WScript.Echo("内容获取失败");
- }
-
- }catch (e){
- WScript.echo(e.message);
- }
- }
-
-
- function GetFileContent(fil){
- var oStream1 = new ActiveXObject("adodb.stream");
- oStream1.open();
- oStream1.charset = "GBK";
- oStream1.Type = 2;
- oStream1.LoadFromFile(fil);
-
- content = oStream1.ReadText();
- oStream1.Close();
-
- //WScript.Echo(content);
- return content;
- }
-
-
- function GetRegStr(fil, regStr){
- //WScript.echo("正则表达式内容 : " + regStr);
- var reg = new RegExp(regStr, "g");
- var content = GetFileContent(fil);
- var ret = "";
-
- while ((collection = reg.exec(content)) != null) {
- //WScript.echo("正则匹配成功");
- ret += collection[1] + "\r\n";
- //WScript.echo(collection[1]);
- }
-
- WScript.Echo(ret);
- return ret;
- }
复制代码
作者: 宫商角徵羽 时间: 2015-1-14 18:10
本帖最后由 宫商角徵羽 于 2015-1-14 18:15 编辑
回复 8# Batcher
我知道有这么些书(厚厚的书)可以参考,
不过,我想知道的是,在这么一堆东西里,关注哪部分内容可以理解本程序?
麻烦,能给圈一下重点,谢谢。(还有,这个程序是用到jscript,还是vbs,还是两个都有?)
作者: 宫商角徵羽 时间: 2015-1-14 21:47
本帖最后由 宫商角徵羽 于 2015-1-14 21:56 编辑
回复 9# amwfjhh
谢谢你的答复:
不过,后来,我发现用http://cctv.cntv.cn/lm/huanqiucaijinglianxian 在硕鼠网上直接解析出来的的视频,未必是最新的。
其实我想下载的是最近一期的(刚更新的一期2015.01.14午间版)就要用到 http://jingji.cntv.cn/2015/01/14/VIDE1421213038989792.shtml 这个地址。
而这个地址需要从上述http://cctv.cntv.cn/lm/huanqiucaijinglianxian/ 页面代码中提取,那么问题又来了:
如何在固定地址 http://cctv.cntv.cn/lm/huanqiucaijinglianxian/ 中提取出最新一期视频连接,把该连接放到第三方网站“硕鼠官网” www.flvcd.com/ 中解析出视频地址,最后再下载下来?
这样,就可以实现:在下午就可以下载当天的午间版;在深夜就可以下载当天的晚间版了;
(另,前面代码美中不足是:1、缺了个进度条;2、最后文件名不能按日期保存;3、代码显得多了一点,呵呵,谢谢)
作者: Batcher 时间: 2015-1-14 22:09
回复 10# 宫商角徵羽
我没有见过这样的书,如果你哪天找到了记得给我分享一下。
作者: amwfjhh 时间: 2015-1-15 09:59
回复 11# 宫商角徵羽
那只是提供一种解题思路,如何在不用第三方程序,仅靠微软的脚本便将之办到的情况,其实你说的问题都可以解决,代码写那么长也是为可扩展而那么写的,在BAT里面给几个页面的初始化变量,然后在JS脚本里面调用正则表达式,解析页面元素,下载相应内容。你说的要求,其实改一下初始页面,或者多几步解析页面的代码就可以了。至于按日期命名下载文件,就更不是事了……
作者: amwfjhh 时间: 2015-1-15 11:27
本帖最后由 amwfjhh 于 2015-1-15 11:38 编辑
回复 11# 宫商角徵羽
主体内容不变,只小改一下批处理中的调用即可达到你要的目的:- @if (0)==(0) echo off
- setlocal enabledelayedexpansion
-
- echo,取得最新一期视频播放地址
- cscript -nologo -e:jscript %~s0 DownloadFile "http://cctv.cntv.cn/lm/huanqiucaijinglianxian/" "$"
- for /f "delims=" %%i in ('cscript -nologo -e:jscript %~s0 GetRegStr "$" "<a\shref='([^']+)'\starget='_blank'\stitle=''>[^<]+</a>"') do (
- echo,%%i&echo,&echo,
- set "strVideoUrl=%%i"
- goto :next
- )
-
- :next
- echo,传入视频播放地址,获取分析结果
- cscript -nologo -e:jscript %~s0 GetWebContent "!strVideoUrl!" "$"
- echo,&echo,
- set /a index=0
- for /f "delims=" %%i in ('cscript -nologo -e:jscript %~s0 GetRegStr "$" "<BR><a\shref='([^']+)'[^>]+>[^<]+</a>"') do (
- set /a index+=1
- echo,!index! : %%i
- CScript -nologo -E:jscript %~s0 DownloadFile "%%i" "%cd%\%date:~0,10%_!index!.mp4"
- echo,&echo,
- )
-
- :end
- del /f $
- pause & goto :EOF
-
- @end
-
- var fun = WScript.arguments(0);
- switch (fun){
- case "GetWebContent":
- if (WScript.arguments.length < 3) {
- WScript.Echo("参数个数错误");
- WScript.quit();
- }
- var url = WScript.arguments(1);
- var fil = WScript.arguments(2);
- GetWebContent(GetEncodeURIComponentStr(url), fil);
- break;
-
- case "DownloadFile":
- if (WScript.arguments.length < 3) {
- WScript.echo("参数个数错误");
- WScript.quit();
- }
- var url = WScript.arguments(1);// + "?wshc_tag=1&wsts_tag=54b5d817&wsid_tag=abd9364e&wsiphost=ipdbm";
- var fil = WScript.arguments(2);
- GetWebContent(url, fil);
- break;
-
- case "GetEncodeURIComponentStr":
- if (WScript.arguments.length < 2) {
- WScript.echo("参数个数错误");
- WScript.quit();
- }
- var url = WScript.arguments(1);
- GetEncodeURIComponentStr(url);
- break;
-
- case "GetFileContent":
- if (WScript.arguments.length < 2) {
- WScript.Echo("参数个数错误");
- WScript.quit();
- }
- var fil = WScript.arguments(1);
- GetFileContent(fil);
- break;
-
- case "GetRegStr":
- if (WScript.arguments.length < 3) {
- WScript.Echo("参数个数错误");
- WScript.quit();
- }
- var fil = WScript.arguments(1);
- var regStr = WScript.arguments(2);
- regStr = regStr.replace(/'/g, "\"");
- GetRegStr(fil, regStr);
- break;
-
- default:;
- }
-
-
- function GetEncodeURIComponentStr(url){
- var encodeUrl = encodeURIComponent(url);
- var webUrl = "http://www.flvcd.com/parse.php?format=&kw="
- webUrl += encodeUrl;
- WScript.echo(webUrl);
- return webUrl;
- }
-
- function GetWebContent(url, fileName){
- try{
- var oHttp = new ActiveXObject("MSXML2.ServerXMLHTTP.4.0");
- oHttp.setProxy(1);
- oHttp.open("Get", url, false);
- WScript.echo("进入函数,传入参数为:" + url);
- oHttp.send("");
-
-
- if (oHttp.readyState == 4) {
- WScript.echo("内容获取完毕");
- //WScript.echo(oHttp.responseText);
- var oStream = new ActiveXObject("adodb.stream");
- oStream.Open();
- oStream.Type = 1;
- oStream.Write(oHttp.responseBody);
- oStream.Position = 0;
-
- var fso = new ActiveXObject("scripting.filesystemobject");
- if (fso.fileExists(fileName)) fso.deleteFile(fileName);
-
- oStream.SaveToFile(fileName);
- WScript.Echo("写入文件:" + fileName);
- oStream.close();
- } else {
- WScript.Echo("内容获取失败");
- }
-
- }catch (e){
- WScript.echo(e.message);
- }
- }
-
-
- function GetFileContent(fil){
- var oStream1 = new ActiveXObject("adodb.stream");
- oStream1.open();
- oStream1.charset = "GBK";
- oStream1.Type = 2;
- oStream1.LoadFromFile(fil);
-
- content = oStream1.ReadText();
- oStream1.Close();
-
- //WScript.Echo(content);
- return content;
- }
-
-
- function GetRegStr(fil, regStr){
- //WScript.echo("正则表达式内容 : " + regStr);
- var reg = new RegExp(regStr, "g");
- var content = GetFileContent(fil);
- var ret = "";
-
- while ((collection = reg.exec(content)) != null) {
- //WScript.echo("正则匹配成功");
- ret += collection[1] + "\r\n";
- //WScript.echo(collection[1]);
- }
-
- WScript.Echo(ret);
- return ret;
- }
复制代码
作者: 宫商角徵羽 时间: 2015-1-15 14:51
回复 14# amwfjhh
谢谢,非常感谢!!
不过,好像哪里出现问题了呢?
作者: amwfjhh 时间: 2015-1-15 15:14
写入失败,是已有文件存在吗?你新建一个文件夹,在里面执行程序试试。
作者: amwfjhh 时间: 2015-1-15 15:18
想到一种可能,也许是文件名规则导致写入失败的,你看一下你的系统日期格式,在cmd里面echo %date%看看是什么?如果是 2014/01/15 这类字样可能就是它的问题了,加一个日期处理吧,把格式变为合法的文件名格式。
作者: amwfjhh 时间: 2015-1-15 15:23
- @if (0)==(0) echo off
- setlocal enabledelayedexpansion
-
- echo,取得最新一期视频播放地址
- cscript -nologo -e:jscript %~s0 DownloadFile "http://cctv.cntv.cn/lm/huanqiucaijinglianxian/" "$"
- for /f "delims=" %%i in ('cscript -nologo -e:jscript %~s0 GetRegStr "$" "<a\shref='([^']+)'\starget='_blank'\stitle=''>[^<]+</a>"') do (
- echo,%%i&echo,&echo,
- set "strVideoUrl=%%i"
- goto :next
- )
-
- :next
- echo,传入视频播放地址,获取分析结果
- cscript -nologo -e:jscript %~s0 GetWebContent "!strVideoUrl!" "$"
- echo,&echo,
- set /a index=0
- set "today=%date:~0,10%"
- set "today=%today:/=%"
- set "today=%today:-=%"
- for /f "delims=" %%i in ('cscript -nologo -e:jscript %~s0 GetRegStr "$" "<BR><a\shref='([^']+)'[^>]+>[^<]+</a>"') do (
- set /a index+=1
- echo,!index! : %%i
- CScript -nologo -E:jscript %~s0 DownloadFile "%%i" "%cd%\%today%_!index!.mp4"
- echo,&echo,
- )
-
- :end
- del /f $
- pause & goto :EOF
-
- @end
-
- var fun = WScript.arguments(0);
- switch (fun){
- case "GetWebContent":
- if (WScript.arguments.length < 3) {
- WScript.echo("参数个数错误");
- WScript.quit();
- }
- var url = WScript.arguments(1);
- var fil = WScript.arguments(2);
- GetWebContent(GetEncodeURIComponentStr(url), fil);
- break;
-
- case "DownloadFile":
- if (WScript.arguments.length < 3) {
- WScript.echo("参数个数错误");
- WScript.quit();
- }
- var url = WScript.arguments(1);// + "?wshc_tag=1&wsts_tag=54b5d817&wsid_tag=abd9364e&wsiphost=ipdbm";
- var fil = WScript.arguments(2);
- GetWebContent(url, fil);
- break;
-
- case "GetEncodeURIComponentStr":
- if (WScript.arguments.length < 2) {
- WScript.echo("参数个数错误");
- WScript.quit();
- }
- var url = WScript.arguments(1);
- GetEncodeURIComponentStr(url);
- break;
-
- case "GetFileContent":
- if (WScript.arguments.length < 2) {
- WScript.echo("参数个数错误");
- WScript.quit();
- }
- var fil = WScript.arguments(1);
- GetFileContent(fil);
- break;
-
- case "GetRegStr":
- if (WScript.arguments.length < 3) {
- WScript.echo("参数个数错误");
- WScript.quit();
- }
- var fil = WScript.arguments(1);
- var regStr = WScript.arguments(2);
- regStr = regStr.replace(/'/g, "\"");
- GetRegStr(fil, regStr);
- break;
-
- default:;
- }
-
-
- function GetEncodeURIComponentStr(url){
- var encodeUrl = encodeURIComponent(url);
- var webUrl = "http://www.flvcd.com/parse.php?format=&kw="
- webUrl += encodeUrl;
- WScript.echo(webUrl);
- return webUrl;
- }
-
- function GetWebContent(url, fileName){
- try{
- var oHttp = new ActiveXObject("MSXML2.ServerXMLHTTP.4.0");
- oHttp.setProxy(1);
- oHttp.open("Get", url, false);
- WScript.echo("进入函数,传入参数为:" + url);
- oHttp.send("");
-
-
- if (oHttp.readyState == 4) {
- WScript.echo("内容获取完毕");
- //WScript.echo(oHttp.responseText);
- var oStream = new ActiveXObject("adodb.stream");
- oStream.Open();
- oStream.Type = 1;
- oStream.Write(oHttp.responseBody);
- oStream.Position = 0;
-
- var fso = new ActiveXObject("scripting.filesystemobject");
- if (fso.fileExists(fileName)) fso.deleteFile(fileName);
-
- oStream.SaveToFile(fileName);
- WScript.echo("写入文件:" + fileName);
- oStream.close();
- } else {
- WScript.echo("内容获取失败");
- }
-
- }catch (e){
- WScript.echo(e.message);
- }
- }
-
-
- function GetFileContent(fil){
- var oStream1 = new ActiveXObject("adodb.stream");
- oStream1.open();
- oStream1.charset = "GBK";
- oStream1.Type = 2;
- oStream1.LoadFromFile(fil);
-
- content = oStream1.ReadText();
- oStream1.Close();
-
- //WScript.echo(content);
- return content;
- }
-
-
- function GetRegStr(fil, regStr){
- //WScript.echo("正则表达式内容 : " + regStr);
- var reg = new RegExp(regStr, "g");
- var content = GetFileContent(fil);
- var ret = "";
-
- while ((collection = reg.exec(content)) != null) {
- //WScript.echo("正则匹配成功");
- ret += collection[1] + "\r\n";
- //WScript.echo(collection[1]);
- }
-
- WScript.echo(ret);
- return ret;
- }
复制代码
作者: 宫商角徵羽 时间: 2015-1-15 16:02
回复 18# amwfjhh
:victory: :victory: :victory: :victory: :victory:
太感谢了,这下更完美了,的确是因为日期的问题,看来批处理果然博大精深呐!
作者: DAIC 时间: 2015-1-15 16:23
合并二进制文件- copy /b 1.mp4+2.mp4+3.mp4 new.mp4
复制代码
作者: 宫商角徵羽 时间: 2015-1-15 18:30
回复 20# DAIC
谢谢楼上:
这个方法貌似合并在了一起,可是播放起来嘛、、、、、效果 还是很差劲的,甚至播放不下去了、、、
难道是因为涉及到转码的问题,批处理、vbs、JS,啥的真的没哲了么?
希望还有更大的大牛能提供解决之道。。。
作者: CrLf 时间: 2015-1-15 20:41
合并视频用 ffmpeg
--------------------------
这里有个教程,还提到了 MP4Box,貌似更方便:
http://yonsm.net/mp4merge/
作者: DAIC 时间: 2015-1-15 22:15
回复 21# 宫商角徵羽
转码当然要用 ffmpeg 啦
作者: CrLf 时间: 2015-1-15 22:29
再贴一个链接:
http://www.portablesoft.org/tags/mp4%E5%90%88%E5%B9%B6%E5%99%A8/
作者: amwfjhh 时间: 2015-1-16 13:11
用格式工厂进行视频合并也可以,支持命令行。
作者: 宫商角徵羽 时间: 2015-1-17 04:59
回复 18# amwfjhh
在另一台电脑上的运行结果为什么会是这样的?(Win 7旗舰)
作者: CrLf 时间: 2015-1-17 06:04
回复 26# 宫商角徵羽
创建组件失败
估计是禁用了 scripting.filesystemobject 或 MSXML2.ServerXMLHTTP.4.0 组件,比较可能是前者
作者: amwfjhh 时间: 2015-1-17 18:14
对头,楼上说得对,你试试重新注册一下系统组件。
作者: 宫商角徵羽 时间: 2015-1-18 23:02
回复 28# amwfjhh
是要全部组件么?还是只要某个特殊的组件?
具体应该怎样操作?
(按说,新装的系统应该没有问题的啊?)
作者: CrLf 时间: 2015-1-19 01:32
回复 29# 宫商角徵羽
有的 ghost 系统出于安全考虑会禁用 fso 组件
重新注册一下 SCRRUN.DLL 试试:- regsvr32.exe C:\Windows\System32\scrrun.dll
复制代码
作者: 宫商角徵羽 时间: 2015-1-19 22:39
本帖最后由 宫商角徵羽 于 2015-1-19 22:48 编辑
回复 30# CrLf
用管理员权限运行后显示成功,但批处理还是一样不行。。。。[attach]8078[/attach]
作者: amwfjhh 时间: 2015-1-20 02:18
那应该是MSXML2.SEVERXMLHTTP.4.0这个组件问题了,百度下解决方案。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |