标题: [文件操作] [已解决]批处理怎样批量提取图片属性? [打印本页]
作者: guliduo 时间: 2022-11-1 11:16 标题: [已解决]批处理怎样批量提取图片属性?
本帖最后由 guliduo 于 2022-11-11 23:03 编辑
请问大家怎么添加命令实现将当前文件夹和子文件夹下的图片属性也一起提取出来?然后把提取文件名改为提取图片路径,并输出时在第一行添加上标题
原代码如下:- <# :
- cls
- @echo off
- rem 提取图片的文件大小、宽高尺寸和分辨率
- set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
- title %#% +%$%%$%/%@% %z%
- cd /d "%~dp0"
- powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default))) -Args '%~dp0'"
- echo;%#% +%$%%$%/%@% %z%
- pause
- exit
- #>
- $path=$args[0];
- $outfile='.\info.csv';
- $ext=@('.jpg', '.jpeg', '.bmp', '.png', '.gif', '.TIF');
-
- function formatsize($n){
- $m='';
- if($n -ge 1073741824){
- $m=($n/1073741824).toString('0.00')+' GB';
- }else{
- if($n -ge 1048576){
- $m=($n/1048576).toString('0.00')+' MB';
- }else{
- if($n -ge 1024){
- $m=($n/1024).toString('0.00')+' KB';
- }else{
- $m=$n.toString()+' B';
- };
- };
- };
- return $m;
- };
-
- $outfile=$outfile -replace '^\.',$path.trimend('\');
- [System.Collections.ArrayList]$s=@();
- Add-Type -AssemblyName 'System.Drawing';
- $files=@(dir -liter $path|?{($ext -contains $_.Extension) -and ($_ -is [System.IO.FileInfo])});
- for($i=0;$i -lt $files.length;$i++){
- $img=[System.Drawing.Image]::FromFile($files[$i].FullName);
- $line='"'+$files[$i].Name+'",'+(formatsize $files[$i].length)+',';
- $line+=$img.Width.toString()+'x'+$img.Height.toString()+','+$img.HorizontalResolution.toString();
- [void]$s.add($line);
- write-host $line;
- $img.Dispose();
- };
- [IO.File]::WriteAllLines($outfile, $s, [Text.Encoding]::Default);
复制代码
作者: pd1 时间: 2022-11-1 16:03
41行 改为 $line='"'+$files[$i].FullName+'",'+$files[$i].mode+','+(formatsize $files[$i].length)+',';
11-12行之间加上 write-host '文件路径, 属性, 大小,长宽, 分辨率 '
作者: yang6666 时间: 2022-12-30 10:42
回复 2# pd1
请问这个怎么增加遍历子文件夹
作者: pd1 时间: 2022-12-30 11:41
dir后面加 -s
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |