删除文件夹中没有相应jpg文件的nef文件

时间:2019-01-29 15:05:20

标签: batch-file

我想编写一个脚本,该脚本可搜索文件夹并删除没有匹配的.nef的所有原始文件(jpg)。例如,

文件夹结构:

DSC_0001.nef
DSC_0001.jpg
DSC_0002.nef
DSC_0003.nef

程序将删除DSC_0002.nefDSC_0003.nef

我该怎么做?

3 个答案:

答案 0 :(得分:0)

FOR /R %%F IN (*.NEF) DO @IF NOT EXIST "%%~dpnF.jpg" DEL "%%F"

注意:/R开关表示递归(即它将在​​运行它的目录中的整个目录树中继续运行此命令)。如果您也不想处理子目录,请忽略该开关。

答案 1 :(得分:0)

可能的PowerShell解决方案:

Get-ChildItem -Path "C:\temp\nef" -Filter "*.nef" | foreach {
    if( -not (Get-Item $_.FullName.Replace('.nef','.jpg') -ErrorAction SilentlyContinue)){
        $_ | Remove-Item -WhatIf
    }
}

删除-WhatIf,使其实际上删除文件。

答案 2 :(得分:0)

您将需要使用(对于单个文件夹):

@echo off

cd to\folder
for %%A IN (*.nef) do (
    if not exist %%~nA.jpg (del %%~fA)
)

对于多个文件夹,请使用:

@echo off

for /R "full_path_to_parent_folder" %%A IN (*.nef) do (
    if not exist %%~dpnA.jpg (del %%~fA)
)