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

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

本帖最后由 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);
复制代码

41行  改为   $line='"'+$files[$i].FullName+'",'+$files[$i].mode+','+(formatsize $files[$i].length)+',';
11-12行之间加上   write-host '文件路径, 属性, 大小,长宽, 分辨率 '

TOP

回复 2# pd1


    请问这个怎么增加遍历子文件夹

TOP

dir后面加  -s

TOP

返回列表