3

Я хочу написать пакетный скрипт, который может генерировать и проверять md5-хэши всего дерева каталогов. Есть ли такая программа для Windows?

Я могу найти много программ md5, но они не проверяются и не повторяются.

3 ответа3

2

так что если вы знакомы с командной строкой, вот несколько инструментов, которые вы можете попробовать:

FileList

От: http://web.archive.org/web/20151229001926/http://malektips.com:80/filelist-output-directory-csv-spreadsheet-database.html

Исходный URL больше не работает, поэтому в приведенном выше примере используется машина обратного хода. Если вы щелкнете по ссылке, ведущей на сайт загрузки, он также будет использовать машину обратного хода, так что вот прямая ссылка, которая, кажется, все еще работает: https://www.jam-software.com/filelist/

filelist /?

FileList V2.0

Prints a list of all files in a file system branch

FILELIST [/OPTION] [/FILTER pattern1;pattern2;...] Path [>list.csv]

/OWNERS       Adds a coluimn with the file owners (slower)
/NOHEADER     Leaves out the column headers and only prints the raw data
/ATTRIBUTES   Includes the attributes that are set for each files
/MD5          Adds a column wit the MD5 checksum of each file
/AUTHORS      Additionally extracts name of the author from MS Office documents
/LASTSAVEDATE Additionally extracts the last save date from MS Office documents
/FILTER       Allows to specify one or more filters, separated with semicolons

For example: filelist /md5 C:\temp > list.csv

Add new files then run again filelist /md5 C:\temp > list2.csv 

или md5deep от http://md5deep.sourceforge.net/start-md5deep.html

 md5deep.exe -r C:\temp >> md5hashes1.txt modify files and run again
 md5deep.exe -r C:\temp >> md5hashes2.txt

теперь просто сравните list.csv с list2.csv в Excel или с любой утилитой сравнения (например, Windifff)

в противном случае пойти на:

MD5summer с http://www.md5summer.org/

или же

hksfv с http://www.big-o-software.com/products/hksfv/

0

Зачем изобретать велосипед? Поскольку вы специально сказали, что ищете приложение для Windows, я рекомендую расширение оболочки HashCheck

Он может делать все, что вы просите, и очень мало ресурсов.

0

Я не думаю, что вы можете сделать это извините. Хэш md5 - это хеш потока байтов, но дерево каталогов - это не поток байтов. Папка - это индекс файлов (которые представляют собой потоки байтов) и других папок. Сейчас технически папки - это просто файлы, но нет "предопределенного" порядка для всех файлов, поэтому я не думаю, что это возможно.

Поэтому вместо этого я думаю, что сначала вам нужно закодировать каталог в один поток байтов (то есть файл). Версии zip или winRar из командной строки будут выполнены. Если скорость - проблема, есть варианты, чтобы фактически не делать никакого сжатия. Возможно, есть также порт tar для Windows, или, может быть, даже собственный эквивалент Windows (CAB-файлы?). Я, вероятно, пошел бы с 7zip и использовал бы comamndline 7z.exe (включенный в установщик)

http://www.7-zip.org/

Таким образом, ваш скрипт может создать один файл, а затем получить MD5-хеш этого. И тогда ваш скрипт может удалить один файл. Не совсем то, что вы хотите, но я думаю, что это ваш лучший вариант.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .