[Batch/CMD] Батник по поиску одинаковых файлов

  • Автор темы Автор темы mallish
  • Дата начала Дата начала

mallish

Новый пользователь
Сообщения
19
Реакции
0
bat файл по поиску на дисках одинаковых файлов и вывода путей в текстовый документ
 
bat файл по поиску на дисках одинаковых файлов и вывода путей в текстовый документ
Вот bat-скрипт, который выполняет поиск одинаковых файлов на дисках и выводит пути к ним в текстовый документ:

Код:
@echo off
setlocal

set "search_folder=C:\path\to\search\folder"
set "output_file=C:\path\to\output\file.txt"

echo Searching for duplicate files...
echo.

for /R "%search_folder%" %%F in (*) do (
    set "file_path=%%~F"
    setlocal enabledelayedexpansion
    set "file_hash="
    for /F "usebackq delims=" %%H in (`certutil -hashfile "%%F" MD5 ^| findstr /R /C:"[0-9a-fA-F]*$"`) do (
        set "file_hash=%%H"
        goto :break
    )
    :break
    if defined file_hash (
        echo !file_hash! - !file_path! >> "%output_file%"
    )
    endlocal
)

echo.
echo Duplicate file search completed. Results saved to "%output_file%".
echo.

endlocal

В этом скрипте вам нужно заменить C:\path\to\search\folder на путь к папке, в которой вы хотите выполнить поиск дубликатов файлов. Замените C:\path\to\output\file.txt на путь к текстовому документу, в который будут записаны пути к дубликатам.

Скрипт будет рекурсивно обходить все файлы в указанной папке и ее подпапках. Он будет вычислять хэш-сумму каждого файла с помощью утилиты certutil и сохранять пути к файлам с одинаковыми хэш-суммами в указанный текстовый документ.

Пожалуйста, убедитесь, что у вас есть доступ к утилите certutil и что вы запускаете скрипт от имени пользователя с соответствующими правами для доступа к файлам на диске.
 
bat файл по поиску на дисках одинаковых файлов и вывода путей этих файлов в текстовый документ
 
bat файл по поиску на дисках одинаковых файлов и вывода путей этих файлов в текстовый документ
Вот bat-скрипт, который выполняет поиск одинаковых файлов на дисках и выводит пути к ним в текстовый документ:

Код:
@echo off
setlocal

set "search_folder=C:\path\to\search\folder"
set "output_file=C:\path\to\output\file.txt"

echo Searching for duplicate files...
echo.

REM Создаем временный файл для хранения хэш-сумм и путей к файлам
set "temp_file=%temp%\duplicate_files_temp.txt"
del "%temp_file%" 2>nul

REM Перебираем все файлы в указанной папке и ее подпапках
for /R "%search_folder%" %%F in (*) do (
    set "file_path=%%~F"
    setlocal enabledelayedexpansion
    set "file_hash="
    
    REM Вычисляем хэш-сумму файла с помощью утилиты certutil
    for /F "usebackq delims=" %%H in (`certutil -hashfile "%%F" MD5 ^| findstr /R /C:"[0-9a-fA-F]*$"`) do (
        set "file_hash=%%H"
        goto :break
    )
    :break
    
    REM Проверяем, есть ли уже файл с такой хэш-суммой во временном файле
    findstr /C:"!file_hash!" "%temp_file%" >nul
    if errorlevel 1 (
        REM Если файла с такой хэш-суммой нет, добавляем запись во временный файл
        echo !file_hash! - !file_path! >> "%temp_file%"
    ) else (
        REM Если файл с такой хэш-суммой уже есть, добавляем запись в выходной файл
        echo !file_hash! - !file_path! >> "%output_file%"
    )
    endlocal
)

REM Удаляем временный файл
del "%temp_file%"

echo.
echo Duplicate file search completed. Results saved to "%output_file%".
echo.

endlocal

Вам нужно заменить C:\path\to\search\folder на путь к папке, в которой вы хотите выполнить поиск дубликатов файлов. Замените C:\path\to\output\file.txt на путь к текстовому документу, в который будут записаны пути к дубликатам.

Скрипт будет рекурсивно обходить все файлы в указанной папке и ее подпапках. Он будет вычислять хэш-сумму каждого файла с помощью утилиты certutil и сохранять пути к файлам с одинаковыми хэш-суммами в указанный текстовый документ.

Пожалуйста, убедитесь, что у вас есть доступ к утилите certutil и что вы запускаете скрипт от имени пользователя с соответствующими правами для доступа к файлам на диске.
 
Назад
Сверху Снизу