Я хотел бы удалить все изображения VERTICAL и SMALL из определенной папки.Удаление снимков по размерам с помощью PowerShell
У меня есть папка, в которой я не хочу вертикальных изображений или изображений с размерами менее 600 x 600 пикселей. Я считаю, что PowerShell лучше всего использовать, поскольку я не могу заставить Python работать на моем компьютере.
Я делаю это, потому что я не хочу вручную удалять вертикальные/маленькие изображения из моей папки каждый день. (Он получает новые каждый день)
Любая помощь была бы принята с благодарностью!
Вот мой код:
cd C:\Users\Jack\Desktop\Test
$c = 5
Function Get-FileMetaData {
Param([string[]]$folder)
foreach($sFolder in $folder) {
$a = 0
$b = 1
$objShell = New-Object -ComObject Shell.Application
$objFolder = $objShell.namespace($sFolder)
foreach ($File in $objFolder.items()) {
$FileMetaData = New-Object PSOBJECT
for ($a ; $a -le 266; $a++) {
if($objFolder.getDetailsOf($File, $a)) {
$hash += @{$($objFolder.getDetailsOf($objFolder.items, $a)) =
$($objFolder.getDetailsOf($File, $a)) }
$FileMetaData | Add-Member $hash
if ($($objFolder.getDetailsOf($objFolder.items, $a)) -eq "Height") {
Write-Host $($objFolder.getDetailsOf($objFolder.items, $a)) =====
$($objFolder.getDetailsOf($File, $a))
}
if ($($objFolder.getDetailsOf($objFolder.items, $a)) -eq "Width") {
Write-Host $($objFolder.getDetailsOf($objFolder.items, $a)) =====
$($objFolder.getDetailsOf($File, $a))
}
if ($($objFolder.getDetailsOf($objFolder.items, $a)) -eq "Name") {
Write-Host $($objFolder.getDetailsOf($objFolder.items, $a)) =====
$($objFolder.getDetailsOf($File, $a))
}
$b++
$hash.clear()
} #end if
} #end for
Write-Host $a
$a=0
$FileMetaData
} #end foreach $file
$c++
Write-Host c = $c
} #end foreach $sfolder
} #end Get-FileMetaData
Write-Host c = $c
$h = Get-FileMetaData C:\Users\Jack\Desktop\Test | select Height
$w = Get-FileMetaData C:\Users\Jack\Desktop\Test | select Width
$n = Get-FileMetaData C:\Users\Jack\Desktop\Test | select Name
$h
Write-Host w = $w
Write-Host name = $n
$SpecChars = '!', "{", "}", '"', '£', '$', '%', '&', '^', '*', '(', ')', '@', '=', '+', '¬', '`', '\', '<', '>', '?', '/', ':', ';', '#', '~', "'", '-', "Name", "N", "a", "m", "e", ' '
$remspecchars = [string]::join('|', ($SpecChars | % {[regex]::escape($_)}))
if (($h) -replace '\D+(\d+)','$1' -gt ($w) -replace '\D+(\d+)','$1') {
Write-Host "VERTICAL"
Write-Host name = $n
$d = $n -replace $remspecchars, ""
$d.split()
Write-Host $d
$tally = 0
while($tally -ne $d.Count) {
del $d[$tally]
$tally++
}
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
}
Write-Host "Finished"
Пожалуйста, убедитесь, что вы читаете это и попытаться улучшить свой вопрос: http://stackoverflow.com/help/mcve –
Здесь это мой код https://drive.google.com/open?id=0B15ToJa5Sa4cdWlXMllwcDlza0E – Jacksmackod
Пожалуйста, включите всю важную информацию по вашему вопросу в свой вопрос. Если внешние ресурсы исчезнут (по какой-либо причине), ваш вопрос станет бесполезным для всех остальных. –