我想编写一个脚本,该脚本可搜索文件夹并删除没有匹配的.nef
的所有原始文件(jpg
)。例如,
文件夹结构:
DSC_0001.nef
DSC_0001.jpg
DSC_0002.nef
DSC_0003.nef
程序将删除DSC_0002.nef
和DSC_0003.nef
。
我该怎么做?
答案 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)
)