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


顶楼代码第7行改成这样试试呢:
(for /f "delims=" %%a in ('dir /b /od *.jpg,*.bmp,*.png,*.gif') do (

或者这样:
(for /f "delims=" %%a in ('dir /b /o-d *.jpg,*.bmp,*.png,*.gif') do (
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 16# Batcher


    谢谢您。可以的。

TOP

本帖最后由 WHY 于 2021-1-3 14:42 编辑

如果确定是按创建时间排序,这样应该可以
Test.js
  1. var Img = new ActiveXObject('WIA.ImageFile');
  2. var fso = new ActiveXObject('Scripting.FileSystemObject');
  3. Date.prototype.format = function(){
  4.     var yy = this.getFullYear();
  5.     var MM = ( '' + (101 + this.getMonth())).substr(1);
  6.     var dd = ( '' + (100 + this.getDate())).substr(1);
  7.     var hh = ( '' + (100 + this.getHours())).substr(1);
  8.     var mm = ( '' + (100 + this.getMinutes())).substr(1);
  9.     var ss = ( '' + (100 + this.getSeconds())).substr(1);
  10.     return yy + MM + dd + hh + mm + ss;
  11. }
  12. var arr = [];
  13. var e = new Enumerator( fso.GetFolder('.').Files );
  14. for(;!e.atEnd();e.moveNext()){
  15.     var file = e.item().Name;
  16.     if( !/\.(?:jpg|bmp|png|gif)$/i.test(file) ) continue;
  17.     Img.LoadFile(file);
  18.     var dt = new Date(e.item().DateCreated).format();
  19.     arr.push( dt + ' ' + file + ' ' + Img.Width + "x" + Img.Height + "x" + Img.HorizontalResolution );
  20. }
  21. arr.sort();  //正序
  22. //arr.sort().reverse();  //逆序
  23. fso.OpenTextFile('图片信息.txt', 2, true).WriteLine( arr.join('\r\n').replace(/^\d+ /gm, '') );
  24. WSH.Echo('Done');
复制代码
修改顶楼的:
  1. @echo off
  2. set Pic=*.jpg,*.jpeg,*.png,*.bmp,*.gif
  3. call :CreatVBS
  4. dir /b /od /tc %Pic% | cscript //nologo "%tmp%\GetImgInfo.vbs" > PicInfo.txt
  5. pause & exit
  6. :CreatVBS
  7. (
  8.     echo '获取图片文件的宽、高、DPI
  9.     echo On Error Resume Next
  10.     echo Dim Img, file
  11.     echo Set Img = CreateObject("WIA.ImageFile"^)
  12.     echo while Not WSH.StdIn.AtEndOfStream
  13.     echo     file = WSH.StdIn.ReadLine
  14.     echo     Img.LoadFile file
  15.     echo     WSH.Echo file ^& " " ^& Img.Width ^& "x" ^& Img.Height ^& "x" ^& Img.HorizontalResolution
  16.     echo wend
  17. )>"%tmp%\GetImgInfo.vbs"
复制代码
1

评分人数

TOP

我只写一部分代码
第一种用重定向最后面  >1.txt
第二种powershell输出到文本.size -join ' ' | out-file 1.txt
1

评分人数

#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

  1. @set @i=0 /* & @echo off
  2. dir /b /a-d /od *.jpg *.bmp *.png *.gif | cscript -nologo -E:JScript %0
  3. pause
  4. exit
  5. */
  6. var img=new ActiveXObject("WIA.ImageFile");
  7. while(!WScript.StdIn.AtEndOfStream) {
  8.     var file = WScript.StdIn.ReadLine();
  9.     img.LoadFile(file);
  10.     WSH.Echo(file, img.Height+'x'+img.Width+'x'+img.HorizontalResolution);
  11. }
复制代码
1

评分人数

TOP

如果确定是按创建时间排序,这样应该可以
Test.js修改顶楼的:
WHY 发表于 2020-12-29 19:04



    谢谢~谢谢~ 这个效率真的高,顶楼的代码会有几秒的处理时间,不如你的代码。

想额外咨询个小问题,您的JS代码能否这样改:
根据文本B.TXT里的内容,内容如下:
c:\1.jpg
c:\2.jpg
……
是完整的电脑中图片的路径。

根据这个路径,分别去提取宽高呢,从而完美一对一对应呢。

因为我发现,按照时间排序,最快也就是按照“秒”来算,但一秒内存了2个图,也是可以的,现在的浏览器插件太迅速了。所以还是有几率导致和桌面顺序不一样。

降低保存速度也是可以的,就是好奇,能否改成 像上面说的那样一对一。 谢谢您了。

TOP

回复 21# 灯塔彭于晏


    Test.js
  1. var listFile = 'B.txt';   //列表文件
  2. var Img = new ActiveXObject('WIA.ImageFile');
  3. var fso = new ActiveXObject('Scripting.FileSystemObject');
  4. var objFile = fso.OpenTextFile(listFile, 1);
  5. var arr = [];
  6. while( !objFile.AtEndOfStream ){
  7.     var file = objFile.ReadLine().replace(/^\s+|\s+$/g, '');
  8.     if(file == '') continue;
  9.     try {
  10.         Img.LoadFile(file);
  11.         arr.push(file + ' ' + Img.Width + 'x' + Img.Height + 'x' + Img.HorizontalResolution);
  12.     } catch(e) {
  13.         WSH.Echo(file + ' ' + e.message);
  14.     }
  15. }
  16. fso.OpenTextFile('图片信息.txt', 2, true).WriteLine( arr.join('\r\n') );
  17. WSH.Echo('Done');
复制代码

TOP

返回列表