我想写一个脚本,搜索一个文件夹,并删除任何原始文件(.nef
),没有匹配的jpg
。例如,
文件夹结构:
DSC_0001.nef
DSC_0001.jpg
DSC_0002.nef
DSC_0003.nef
该程序将删除DSC_0002.nef
和DSC_0003.nef
。
我该怎么做呢?
发布于 2019-01-29 15:06:56
FOR /R %%F IN (*.NEF) DO @IF NOT EXIST "%%~dpnF.jpg" DEL "%%F"
注意:/R
开关表示递归(即,它将从运行该命令的目录继续在整个目录树中运行该命令)。如果您不想同时处理子目录,请省略该开关。
发布于 2019-01-29 15:14:57
一种可能的PowerShell
解决方案:
Get-ChildItem -Path "C:\temp\nef" -Filter "*.nef" | foreach {
if( -not (Get-Item $_.FullName.Replace('.nef','.jpg') -ErrorAction SilentlyContinue)){
$_ | Remove-Item -WhatIf
}
}
删除-WhatIf
,使其真正删除文件。
发布于 2019-01-29 15:19:44
您将需要使用(对于单个文件夹):
@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)
)
https://stackoverflow.com/questions/54423947
复制相似问题