Войти

Показать полную графическую версию : [решено] получить хэш единственного iso файла с неизвестным именем в папке


uhi
20-03-2021, 23:03
Добрый день.
Собственно сабж

Есть папка d:\Folder
В ней может быть только один iso файл с именем которое не известно, надо получить хэш этого файла.

Для известного имени всё ясно, а как написать батник чтобы он сначала из находил имя файла и его подставлял в certutil для вычисления хэша?

certutil -hashfile d:\Folder\test.iso SHA256 >d:\Folder\hash.txt

alpap
21-03-2021, 02:29
только один iso файл »

dir /a-d/b "d:\Folder\*.iso"|set /p name=^& call certutil -hashfile "%%name%%" SHA256>hash.txt

DJ Mogarych
21-03-2021, 08:41
Или в Powershell, где certutil не нужен:

(Get-FileHash (dir "d:\Folder\*.iso").FullName).hash

uhi
21-03-2021, 10:11
dir /a-d/b "d:\Folder\*.iso"|set /p name=^& call certutil -hashfile "%%name%%" SHA256>hash.txt »

работает если создать батник и положить его в d:\Folder\ а если батник переместить в другое место то в файл выгружается:
CertUtil: -hashfile команда НЕ ВЫПОЛНЕНА: 0x80070002 (WIN32: 2 ERROR_FILE_NOT_FOUND)
CertUtil: Не удается найти указанный файл.

как исправить чтобы можно было из любого места запускать?

alpap
21-03-2021, 16:52
странно, путь ведь указан полностью
а что показывает так:

@echo on
dir /a-d/b "d:\Folder\*.iso"|set /p name=^& call certutil -hashfile "%%name%%" SHA256
pause


да, действительно как-то странно работает
вот так работает правильно

@echo off
pushd "D:\Folder"
for /f "delims=" %%a in ('dir /a-d/b "*.iso"') do certutil -hashfile "%%a" SHA256>file.txt
popd
pause

uhi
21-03-2021, 17:25
alpap, Спасибо!

Степановгорбунов@vk
30-05-2025, 12:58
да, действительно как-то странно работает
вот так работает правильно
Код:
@echo off
pushd "D:\Folder"
for /f "delims=" %%a in ('dir /a-d/b "*.iso"') do certutil -hashfile "%%a" SHA256>file.txt
popd
pause »

На виндовс 10 ver 22H2 выдает ошибку: Системе не удается найти указанный путь.
Запусквл и от пользователя и от админа, все равно выдает ошибку!
Помогите с проблемой.




© OSzone.net 2001-2012