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

[文本处理] 批处理加入写入txt的功能

我在网上找到一段读取视频长度的批处理代码?我想给他把显示的内容写到txt上面,请问改怎么弄呢?
  1. /*&cls
  2. @echo off
  3. rem 获取视频的相关属性信息(文件名称、大小、时长)
  4. cd /d "%~dp0"
  5. set ext=*.mp4 *.mkv *.rmvb *.mov
  6. set "outfile=1.txt"
  7.   
  8. type nul>"%outfile%"
  9. set "exefile=ffmpeg.exe"
  10. set "a=:##bcn+bathome+net#tool#ffmpeg,3.4.2#%exefile%"
  11. set "a=%a:#=/%"
  12. set "b=http%a:+=.%"
  13. if not exist "%exefile%" (
  14.     echo;"%exefile%" not found
  15.     echo;download from: %b% , and put them together
  16.     goto end
  17. )
  18. for /f "delims=" %%a in ('dir /a-d/b %ext%') do (
  19.     rem echo;"%%a"
  20.     %exefile% -i "%%a" 2>&1|cscript -nologo -e:jscript "%~f0" "%%a"
  21.    
  22. )
  23. :end
  24. echo;
  25. pause
  26. exit
  27. */
  28. var fso=new ActiveXObject('Scripting.FileSystemObject');
  29. var a='*',b='*',c='*',d='*',e='*',f='*';
  30. var file=fso.GetFile(WSH.Arguments(0));
  31. a='"'+file.Name+'"';
  32. b=formatsize(file.Size);
  33. c=formattime(file.DateCreated);
  34. while(!WSH.StdIn.AtEndOfStream){
  35.     var line=WSH.StdIn.ReadLine();
  36.     var m2=line.match(/ Duration *: *(\d+:\d+:\d+)/);
  37.     if(m2){d=m2[1];}
  38.     var m3=line.match(/ Stream #0:0.+?: *.*?, (\d+x\d+).*?(\d+(?:\.\d+)? fps)/);
  39.     if(m3){e=m3[1];f=m3[2];}
  40. }
  41. WSH.echo(a+b+d);
  42. WSH
  43.   
  44. function formattime(t){
  45.    var dt=new Date(t);
  46.    var ymd=dt.getFullYear()+'-'+add(dt.getMonth()+1)+'-'+add(dt.getDate());
  47.    var hms=add(dt.getHours()+1)+':'+add(dt.getMinutes())+':'+add(dt.getSeconds());
  48.    return ymd+' '+hms;
  49. }
  50.   
  51. function formatsize(s){
  52.     var size=s + 'B';
  53.     if(s>=1073741824){
  54.         size=(s/1073741824).toFixed(2) + 'GB';
  55.     }else{
  56.         if(s>=1048576){
  57.             size=(s/1048576).toFixed(2) + 'MB';
  58.         }else{
  59.             if(s>=1024){
  60.                 size=(s/1024).toFixed(2) + 'KB';
  61.             }
  62.         }
  63.     }
  64.     return size;
  65. }
  66.   
  67. function add(t){return Number(t)<10?'0'+t:t;}
复制代码

回复 2# wujunkai


    可以了。太感谢了。

TOP

  1. /*&cls
  2. @echo off
  3. rem 获取视频的相关属性信息(文件名称、大小、时长)
  4. cd /d "%~dp0"
  5. set ext=*.mp4 *.mkv *.rmvb *.mov
  6. set "outfile=1.txt"
  7.   
  8. type nul>"%outfile%"
  9. set "exefile=ffmpeg.exe"
  10. set "a=:##bcn+bathome+net#tool#ffmpeg,3.4.2#%exefile%"
  11. set "a=%a:#=/%"
  12. set "b=http%a:+=.%"
  13. if not exist "%exefile%" (
  14.     echo;"%exefile%" not found
  15.     echo;download from: %b% , and put them together
  16.     goto end
  17. )
  18. for /f "delims=" %%a in ('dir /a-d/b %ext%') do (
  19.     rem echo;"%%a"
  20.     (%exefile% -i "%%a" 2>&1|cscript -nologo -e:jscript "%~f0" "%%a")>>length.txt
  21.    
  22. )
  23. :end
  24. echo;
  25. pause
  26. exit
  27. */
  28. var fso=new ActiveXObject('Scripting.FileSystemObject');
  29. var a='*',b='*',c='*',d='*',e='*',f='*';
  30. var file=fso.GetFile(WSH.Arguments(0));
  31. a='"'+file.Name+'"';
  32. b=formatsize(file.Size);
  33. c=formattime(file.DateCreated);
  34. while(!WSH.StdIn.AtEndOfStream){
  35.     var line=WSH.StdIn.ReadLine();
  36.     var m2=line.match(/ Duration *: *(\d+:\d+:\d+)/);
  37.     if(m2){d=m2[1];}
  38.     var m3=line.match(/ Stream #0:0.+?: *.*?, (\d+x\d+).*?(\d+(?:\.\d+)? fps)/);
  39.     if(m3){e=m3[1];f=m3[2];}
  40. }
  41. WSH.echo(a+b+d);
  42. WSH
  43.   
  44. function formattime(t){
  45.    var dt=new Date(t);
  46.    var ymd=dt.getFullYear()+'-'+add(dt.getMonth()+1)+'-'+add(dt.getDate());
  47.    var hms=add(dt.getHours()+1)+':'+add(dt.getMinutes())+':'+add(dt.getSeconds());
  48.    return ymd+' '+hms;
  49. }
  50.   
  51. function formatsize(s){
  52.     var size=s + 'B';
  53.     if(s>=1073741824){
  54.         size=(s/1073741824).toFixed(2) + 'GB';
  55.     }else{
  56.         if(s>=1048576){
  57.             size=(s/1048576).toFixed(2) + 'MB';
  58.         }else{
  59.             if(s>=1024){
  60.                 size=(s/1024).toFixed(2) + 'KB';
  61.             }
  62.         }
  63.     }
  64.     return size;
  65. }
  66.   
  67. function add(t){return Number(t)<10?'0'+t:t;}
复制代码
大概应该是这样回复 1# yxw886

TOP

返回列表