我有许多目录,其中一个文件夹包含 .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!
)
根据需要修改脚本。