2014-10-11 89 views
0

我想要刪除特定文件夾及其所有子文件夾中的所有* .jpg文件。寬度不等800和高度不等600(僅留下800x600 jpg圖像)。Powershell:刪除某些尺寸的圖像

有人能告訴我如何在PowerShell中做到這一點?

我知道我可以刪除與

Get-ChildItem -Path .\ -Filter *.jpg -Recurse | foreach ($_) {remove-item $_.fullname} 

* .jpg圖像,但我似乎無法找到如何選擇圖像的高度/寬度。

+0

可能重複(http://stackoverflow.com/questions/9552367/get-詳細信息 - 從一個PNG文件在PowerShell中) – Matt 2014-10-11 14:13:33

回答

3

您可以使用System.Drawing.Image .NET對象:

$(Get-ChildItem -Filter *.jpg).FullName | ForEach-Object { 
    $img = [Drawing.Image]::FromFile($_); 
    $dimensions = "$($img.Width) x $($img.Height)" 

    If ($dimensions -eq "800 x 600") { 
     Remove-Item $_ 
    } 
} 
的[從PowerShell中的.png文件的詳細信息]
+0

感謝您的回答。但是,它說FromFile「路徑格式無效」。你知道如何解決這個問題嗎? – user4132336 2014-10-11 13:38:26

+0

您可能未在方法中傳遞有效路徑。檢查以確保文件存在 – SomeShinyObject 2014-10-11 13:49:38

+0

我在Get-ChildItem中使用了-Path'。\',但它不起作用。我也嘗試了絕對路徑,並且我也嘗試過'。\ *'。它總是告訴我同樣的錯誤信息。 – user4132336 2014-10-11 13:54:15