比较两个包含相同文件名但不同扩展名的文件夹

比较两个包含相同文件名但不同扩展名的文件夹

我有许多目录,其中一个文件夹包含 .jpg 格式的照片,另一个文件夹包含 .dng 格式的相同文件名。这两个文件夹之间缺少一些文件。我的目标是找出差异。最后,我要从包含更多文件的文件夹中删除“额外”文件。我尝试使用 winmerge,但没有成功。

答案1

您可以使用如下简单的 PowerShell 脚本:

# Get all dngs/jpgs and their base names and extensions to arrays of objects
# Change testdirs to relative/absolute paths
$jpgs = Get-ChildItem -Path testdir1 -Filter "*.jpg" | Select BaseName, Extension
$dngs = Get-ChildItem -Path testdir2 -Filter "*.dng" | Select BaseName, Extension

# Compare arrays by base name and output the table of differences
Compare-Object -ReferenceObject $jpgs -DifferenceObject $dngs -Property BaseName -PassThru

示例结果:

BaseName Extension SideIndicator
-------- --------- -------------
onlydng  .dng      =>
onlyjpg  .jpg      <=
test     .jpg      <=

答案2

当在包含 jpg 文件的文件夹中运行时,此.bat文件将查找不存在的 dng 文件:

@echo off
setlocal enabledelayedexpansion
for /r %%f in (*.*) do (
    set fname=%%~nf
    set "newname=c:\folder-of-dng-files\!fname!.dng"
    if not exist "!newname!" echo !newname!
)

根据需要修改脚本。

相关内容