2016-12-16 2 views
1

Я искал метод создания файла bat для создания контрольной суммы MD5 файла.Bat файл только для генерации контрольной суммы MD5 для файла

Я пробовал fciv и еще несколько других, но все они генерируют файл с дополнительной информацией, такой как путь и имя файла и т. Д. Мне просто нужен MD5, ничего больше.

Кто-нибудь указывает мне в правильном направлении?

Эта команда

fciv new.xml -md5 -r -xml new.xml.md5 

создает файл со следующим содержимым:

<?xml version="1.0" encoding="utf-8"?> 
<FCIV> 
    <FILE_ENTRY><name>new.xml</name><MD5>OuX4jSQyl91+M1fUQZeGtw==</MD5></FILE_ENTRY></FCIV> 

Я просто нужна контрольная сумма MD5.

+0

Предоставьте нам команду, которую вы использовали с fciv, и вывод, который он предоставил, а затем продемонстрируйте использование на выходе того, что именно было вам нужно. – Compo

+0

проверить это - https://github.com/npocmaka/batch.scripts/blob/master/fileUtils/md5.bat – npocmaka

+1

@npocmaka nice batch, пришлось отключить самый грязный, всегда регенерированный файл, являющийся реж. Я заменил его на 'для %% # in ("% ~ 1 ") Do Echo %% ~ a # | find" d "> NUL 2> & 1 && (echo% ~ 1 - это каталог & exit/b 3)' – LotPings

ответ

0

Используя инструмент FCIV вы проявили в вашем вопросе, вам похоже, выводят ваш результат в base64 в XML, если это не то, что вы просили.

Вы можете все еще использовать его, как это, чтобы получить MD5 файла под названием new.xml:

For /F "EOL=/" %A In ('FCIV new.xml') Do @Echo(%A 

Это предполагает MD5 еще выход по умолчанию FCIV и она выбежала из cmd.exe окно, которое правильно знает/доступ расположение fciv.exe

[Редактировать /]

расширенный пример в формате пакетного файла.

@Echo Off 
Set "MyFile=new.xml" 
Set "MD5=" 
For /F "EOL=/" %%A In ('FCIV "%MyFile%"') Do Set "MD5=%%A" 
If Defined MD5 Echo(%MD5% 
Timeout -1 

Слово new.xml может даже заменить% ~ 1, и вы могли бы просто перетащить файл на него вывести его хэш.

+0

спасибо, оцените ваш ответ .. это работает точно так, как вы описали, но мне нужно, чтобы он работал в файле bat, так как я сначала создавая файл new.xml, используя файл bat, после создания new.xml мне нужен файл bat для создания файла md5 (new.xml.md5) new.xml. – locknload

+0

обновлено соответственно – Compo

+0

Спасибо, строки 4 и 5 tweaked были все, что мне нужно для моего существующего файла. Ура! – locknload

2

Это очень уменьшенная обертку для CertUtil без проверки ARG/ошибок:

@Echo off 
:: Pass the file to hash as the only arg 
Set "MD5=" 
For /f "skip=1 Delims=" %%# in (
    'certutil -hashfile "%~f1" MD5' 
) Do If not defined MD5 Set MD5=%%# 
Set MD5=%MD5: =% 
Echo:%MD5% 

Выхода хэширование этой партии самого

b873bbcd93873a6aa320cd64a1751d8a 
Смежные вопросы