Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] получить хэш единственного iso файла с неизвестным именем в папке (http://forum.oszone.net/showthread.php?t=348316)

uhi 20-03-2021 23:03 2953495

получить хэш единственного iso файла с неизвестным именем в папке
 
Добрый день.
Собственно сабж

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

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

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

alpap 21-03-2021 02:29 2953506

Цитата:

Цитата uhi
только один 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 2953513

Или в Powershell, где certutil не нужен:
Код:

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

uhi 21-03-2021 10:11 2953524

Цитата:

Цитата alpap
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 2953563

странно, путь ведь указан полностью
а что показывает так:
Код:

@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 2953567

alpap, Спасибо!

Степановгорбунов@vk 30-05-2025 12:58 3038165

Цитата:

Цитата alpap
да, действительно как-то странно работает
вот так работает правильно
Код:
@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 выдает ошибку: Системе не удается найти указанный путь.
Запусквл и от пользователя и от админа, все равно выдает ошибку!
Помогите с проблемой.


Время: 18:40.

Время: 18:40.
© OSzone.net 2001-