Ich möchte alle VERTICAL und SMALL Bilder aus einem bestimmten Ordner löschen.Löschen von Bildern basierend auf Dimensionen mit PowerShell
Ich habe einen Ordner, ich möchte nicht die vertikalen Bilder oder Bilder mit Abmessungen von weniger als 600 x 600 Pixel. Ich glaube, PowerShell ist die beste Lösung, da ich Python nicht auf meinem Computer verwenden kann.
Ich mache das, weil ich die vertikalen/kleinen Bilder nicht jeden Tag manuell aus meinem Ordner löschen möchte. (Es bekommt jeden Tag neue)
Jede Hilfe würde sehr geschätzt werden !!
Hier ist mein Code:
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"
Bitte stellen Sie sicher, dass Sie diese Zeilen lesen und versuchen, Ihre Frage zu verbessern: http://stackoverflow.com/help/mcve –
Hier ist mein Code https://drive.google.com/open?id=0B15ToJa5Sa4cdWlXMllwcDlza0E – Jacksmackod
Bitte geben Sie alle wichtigen Informationen für Ihre Frage in Ihre Frage ein. Wenn externe Ressourcen verschwinden (aus welchen Gründen auch immer), wird Ihre Frage für alle anderen nutzlos. –