找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18371|回复: 3

[文件操作] [已解决]批处理怎样批量提取图片属性?

[复制链接]
发表于 2022-11-1 11:16:58 | 显示全部楼层 |阅读模式
本帖最后由 guliduo 于 2022-11-11 23:03 编辑

请问大家怎么添加命令实现将当前文件夹和子文件夹下的图片属性也一起提取出来?然后把提取文件名改为提取图片路径,并输出时在第一行添加上标题

原代码如下:
  1. <# :
  2. cls
  3. @echo off
  4. rem 提取图片的文件大小、宽高尺寸和分辨率
  5. set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
  6. title %#% +%$%%$%/%@% %z%
  7. cd /d "%~dp0"
  8. powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default))) -Args '%~dp0'"
  9. echo;%#% +%$%%$%/%@% %z%
  10. pause
  11. exit
  12. #>
  13. $path=$args[0];
  14. $outfile='.\info.csv';
  15. $ext=@('.jpg', '.jpeg', '.bmp', '.png', '.gif', '.TIF');

  16. function formatsize($n){
  17. $m='';
  18. if($n -ge 1073741824){
  19. $m=($n/1073741824).toString('0.00')+' GB';
  20. }else{
  21. if($n -ge 1048576){
  22. $m=($n/1048576).toString('0.00')+' MB';
  23. }else{
  24. if($n -ge 1024){
  25. $m=($n/1024).toString('0.00')+' KB';
  26. }else{
  27. $m=$n.toString()+' B';
  28. };
  29. };
  30. };
  31. return $m;
  32. };

  33. $outfile=$outfile -replace '^\.',$path.trimend('\');
  34. [System.Collections.ArrayList]$s=@();
  35. Add-Type -AssemblyName 'System.Drawing';
  36. $files=@(dir -liter $path|?{($ext -contains $_.Extension) -and ($_ -is [System.IO.FileInfo])});
  37. for($i=0;$i -lt $files.length;$i++){
  38. $img=[System.Drawing.Image]::FromFile($files[$i].FullName);
  39. $line='"'+$files[$i].Name+'",'+(formatsize $files[$i].length)+',';
  40. $line+=$img.Width.toString()+'x'+$img.Height.toString()+','+$img.HorizontalResolution.toString();
  41. [void]$s.add($line);
  42. write-host $line;
  43. $img.Dispose();
  44. };
  45. [IO.File]::WriteAllLines($outfile, $s, [Text.Encoding]::Default);
复制代码
发表于 2022-11-1 16:03:24 | 显示全部楼层
41行  改为   $line='"'+$files[$i].FullName+'",'+$files[$i].mode+','+(formatsize $files[$i].length)+',';
11-12行之间加上   write-host '文件路径, 属性, 大小,长宽, 分辨率 '
发表于 2022-12-30 10:42:30 | 显示全部楼层
回复 2# pd1


    请问这个怎么增加遍历子文件夹
发表于 2022-12-30 11:41:41 | 显示全部楼层
dir后面加  -s
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 08:48 , Processed in 0.017282 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表