0

我正在寻找一个漂亮的脚本,它可以在我提供多个文件时比较文件大小,然后删除较大的文件。

我有一组 JPG 和 PNG 格式的相同图像文件,我只想为每个单独的图像保留两者中较小的一个。每个图像的名称相似,例如 image-01.jpg 和 image-01.png 是成对的,image-02.jpg 和 image-02.png 是成对的,依此类推。某些图像仅以 PNG 形式存在(即 image-03.png 存在,但 image-03.jpg 不存在),不应删除这些图像或将其与“下一张图像”进行比较。

名称可能会有所不同,但一组通常是非常统一的。因为一次要比较数百个文件,如果我只需要提供两个和两个图像,那么手动比较它们会更快,这就是我目前所做的。

4

1 回答 1

1

我得到了一些帮助,并在我在之前的评论中发布的代码中添加了一行。我还稍微完善了代码。

以下代码适用于我的问题。只需将文件拖放到代码中,只要两个文件具有相同的名称,它就会删除最大的文件。请注意,文件需要按排序顺序传递才能正常工作。我不知道如何为参数编写有效的排序算法。这几乎不是我使用的问题,但如果有人想为挑战写一个,我会很高兴看到它。

@echo off

:BEGIN
if "%~2" == "" goto END
echo Comparing %~n1 and %~n2...
if not "%~n1" == "%~n2" ( echo Names don't match. ) && goto NOMATCH
echo Names match! Comparing filesize...
if %~z1 gtr %~z2 (
    ( echo *** Keeping %~2 ^(%~z2 bytes^) *** )
    ( echo *** Deleting %~1 ^(%~z1 bytes^) *** )
    del "%~1".
) else (
    ( echo *** Keeping %~1 ^(%~z1 bytes^) *** )
    ( echo *** Deleting %~2 ^(%~z2 bytes^) *** )
    del "%~2".
)
:NOMATCH
echo.
shift
goto BEGIN
:END
pause
于 2013-03-01T00:41:15.557 回答