Автоматизированное сканирование для поврежденных архивных файлов

У меня есть все виды файлов, которые я загрузил отовсюду за эти годы рассеянный вокруг моих жестких дисков. Я нахожусь в процессе попытки организовать их всех и столкнулся с проблемой. Иногда файл не был загружен правильно (это было большой проблемой, когда Хром сначала вышел), и таким образом повреждено. Для медиа-файлов это, может быть просто определить (это требует на самом деле открытия и исследования файла). Для исполняемых файлов или других двоичных файлов, это относительно трудно (исполняемые файлы могут или не могут отказать, другие двоичные файлы могли быть абсолютно неизвестными). Архивные файлы (например, ZIP, RAR, 7Z, EXE, ACE, и т.д.) однако должны быть довольно простыми, у них есть встроенное средство обнаружения повреждения.

Моя проблема теперь состоит в том, что я действительно не хочу открывать и тестировать каждый единственный заархивированный файл всюду по моему диску; это было бы кошмаром. Я ищу утилиту, которая может автоматизировать процесс.

Существует ли программа, которая может просканировать архивные файлы на диске и перечислить тех, которые коррумпированы? Идеально это смогло бы взять плагины так, чтобы это могло поддерживать дополнительные, менее общие типы архивирования, такие как LHA, UHA, ARJ, и т.д.

0
задан 09.04.2017, 11:21

2 ответа

Программа для сканирования архивных файлов на диске (и я предполагаю Вас, означает zip, rar, 7z, exe, ace, и подобные), назван a script.

Вы могли использовать с 7 zip для test каждый архив в цикле, который ищет все архивные файлы. Необходимо будет все еще ожидать test для выполнения на каждом файле - так, единственной вещью, которую Вы сохранили, является живой ишачий труд фактического тестирования каждого индивидуально.

Как Molly прокомментировал, правильный способ сохранить архивы состоит в том, чтобы сохранить сумму MD5 наряду с файлом. Много раз Вы также готовите его с исполняемыми файлами, которые Вы загружаете. Если бы Вы начинаете сохранять суммы MD5 (или какие-либо другие контрольные суммы) с файлами, проверка была бы вопросом перевычислений суммы MD5 и сравнения с хранимой суммой. Это будет значительно быстрее, чем тест архива (MD5, как известно, быстр).

0
ответ дан 24.11.2019, 12:39

Если Вы получаете версию командной строки С 7 zip (7za.exe) и помещенный это где-нибудь на Ваш системный путь (как C:\Windows), следующий сценарий мог бы работать базовой линией:

@echo off
set DownloadPath=C:\Path\To\Downloaded\Stuff
set ErrorReport=C:\Path\To\BadFiles.txt
pushd %DownloadPath%
for /r %%i in (*.7z;*.zip;*.cab;*.rar;*.ace) do (
    7za.exe t "%%i"
    if ERRORLEVEL 1 echo %%i>>%ErrorReport%
)
popd

Копия и вышеупомянутое вставки в a .cmd файл, удостоверяясь изменять set DownloadPath= и set ErrorReport= строки для указания где-нибудь допустимый. ErrorReport файл будет создан, если он не будет существовать и будет добавлен к тому, если он уже делает. Таким образом, Вы могли запустить скрипт однажды, изменить DownloadPath, и выполненный это снова, не теряя Ваши предыдущие результаты.

Если Вы были бы, точно так же, как для проверки каждого файла, не ограничивая расширения можно заменить *.7z;*.zip... с *, так for строка читала бы: for /r %%i in (*) do (

1
ответ дан 24.11.2019, 12:39

Теги

Похожие вопросы