标题: 请求删除此帖,废弃无用了请求删除此帖,废弃无用了 [打印本页]
作者: cl2039996 时间: 2022-3-29 17:45 标题: 请求删除此帖,废弃无用了请求删除此帖,废弃无用了
本帖最后由 cl2039996 于 2022-5-8 16:25 编辑
请求删除此帖,废弃无用了请求删除此帖,废弃无用了请求删除此帖,废弃无用了请求删除此帖,废弃无用了
作者: zaqmlp 时间: 2022-3-29 18:36
本帖最后由 zaqmlp 于 2022-3-29 18:38 编辑
bat存为ANSI/GB2312编码- /*&cls&echo off&cd /d "%~dp0"&mode con lines=5000
- set "minsec=60"
- set "oldfolder=E:\父文件夹"
- set "newfolder=%oldfolder%_循环"
- if not exist "%oldfolder%" (echo;"%oldfolder%" 未找到&goto end)
- for /f "delims=" %%a in ('dir /a-d-h/b/s "%oldfolder%\*.mp4"') do (
- for /f "tokens=1,2,3,4 delims=|" %%a in ('ffmpeg -i "%%a" 2^>^&1^|cscript -nologo -e:jscript "%~f0" "%minsec%" "%%a" "%oldfolder%" "%newfolder%"') do (
- if not exist "%%~dpd" md "%%~dpd"
- echo;duration=%%a
- echo;concat=%%b
- echo;filelist=%%c
- echo;output="%%d"
- echo;---------------------
- ffmpeg -hide_banner -y %%c -filter_complex "[0:0][0:1][1:0][1:1]concat=n=%%b:v=1:a=1" "%%d"
- echo;=================================
- echo;
- echo;
- )
- )
- :end
- pause
- exit
- */
- var fso=new ActiveXObject('Scripting.FileSystemObject');
- var minsec=Number(WSH.Arguments(0));
- var s=0;
- while(!WSH.StdIn.AtEndOfStream){
- var line=WSH.StdIn.ReadLine();
- var m=line.match(/ Duration *: *(\d+):(\d+):(\d+)/);
- if(m){
- s=3600*Number(m[1])+60*Number(m[2])+1*Number(m[3]);
- break;
- }
- }
- if(s>0){
- var arr=[];
- t=Math.ceil(minsec/s);
- for(var i=1;i<=t;i++){
- var f='-i "'+WSH.Arguments(1)+'"';
- arr.push(f);
- }
- var filelist=arr.join(' ');
- var newfile=WSH.Arguments(3)+WSH.Arguments(1).substring(WSH.Arguments(2).length);
- WSH.echo(s.toString()+'|'+arr.length.toString()+'|'+filelist+'|'+newfile)
- }
复制代码
作者: cl2039996 时间: 2022-3-29 21:24
回复 2# zaqmlp
尊敬的大佬,代码运行无误。对您深表敬佩!
目前这句代码让我有点疑惑:复制代码
文件路径写成确定的了,当然我也能修改这个路径。但是我初心是想着bat放在某个父文件夹里就会对该父文件夹里的所有子文件夹开始操作。
而目前您的写法让我不得不每次修改上面的oldfolder。当然可能有我觉察不到的难处。
您如果觉得方便的话,还请您给改成bat自动识别它所处的父文件夹的名字与路径,然后开始对子文件夹们工作。
如果您觉得牵一发而动全身比较难办。就算了。我可以每次用的时候自己再修改路径。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |