Вместо того, чтобы сравнивать их, я бы написал сценарий для воссоздания XML-файлов из вывода такого инструмента, как ImageMagick's identify
Я бы начал с чего-то вроде
for %f in (*.*) do ^
identify -format '<IMGRES WIDTH="%w" HEIGHT="%h" />' %f% > %f%.xml
Затем исправьте обработку расширения имени файла и т.д.
Чтобы сделать сравнение, как вы просите, я бы использовал лучший язык сценариев (в моем случае это Perl, но я ожидаю, что многие другие люди будут использовать встроенный PowerShell)
Вы можете использовать приведенный выше код, но записать вывод в фиксированное имя файла, а затем использовать fc
и if
в цикле for для генерации желаемого результата.
Чтобы делать то, что вы просите, используя только встроенные инструменты, я бы посмотрел на powershell.
Вот пример с powershellcommunity.org, который вы можете использовать в качестве отправной точки.
function _Get-ImageStream
{
param ($File)
$image = [System.Drawing.Image]::FromFile($File)
$imageStream = New-Object System.IO.MemoryStream
$image.Save($imageStream, [System.Drawing.Imaging.ImageFormat]::Jpeg)
return $imageStream
}
[System.Reflection.Assembly]::LoadFile( "C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll")
"Name|SizeInBytes|Width|Height" >> C:\JPGInfo.txt
$path = "C:\Images\"
$imageFiles = Get-ChildItem -Recurse $path -Include *.jpg
foreach ($image in $imageFiles)
{
$name = $image.Name
$length = $image.Length
$imageStream = _Get-ImageStream -File $image.FullName
$width = $imagestream.Width
$height = $imageStream.Height
"$name|$length|$width|$height" >> C:\JPGInfo.txt
}