示例 - 文件夹包含以下文件:
IMG_20170625_105228.dng
IMG_20170625_105228.jpg
IMG_20170625_105326.jpg
IMG_20170625_105337.jpg
IMG_20170625_105350.dng
IMG_20170625_105350.jpg
脚本应该删除:
IMG_20170625_105228.jpg
IMG_20170625_105350.jpg
答案 0 :(得分:4)
迭代.dng文件,如果存在类似命名的.jpg文件,请将其删除。如果您确信要删除正确的文件,请从ECHO
命令中删除DEL
。
PUSHD "C:\the\dir\containing\pics"
FOR /F "usebackq tokens=*" %%f IN (`DIR /B "*.dng"`) DO (
IF EXIST "%%~nf.jpg" (ECHO DEL "%%~nf.jpg")
)
POPD
无论出于何种原因,如果您想在PowerShell中执行此操作,您可以执行以下操作。删除正确的文件后,从-WhatIf
命令中删除Remove-Item
。我很想听听任何人在PowerShell中更好的方法。
$picdir = 'C:\dir\path\to\pics'
Get-ChildItem -Path $picdir -File -Filter '*.dng' |
Where-Object { Test-Path -Path "$($_.DirectoryName)/$($_.BaseName).jpg" -PathType Leaf } |
Select-Object @{Name="Path";Expression={"$($_.DirectoryName)\$($_.BaseName).jpg"}} |
Remove-Item -WhatIf