Сбор хэшей в заданном каталоге для файлов со спецсимволами в именах

Следующий код помещает хеш-суммы файлов из заданного каталога в файл "_checksums_MD5.txt". Проблема в том, что когда имена файлов содержат спецсимволы, они записываются со знаками вопросов. Есть ли возможность сохранять имена в кодировке UTF-8?

@echo off
SET CDir="C:\Tmp"
for /r %CDir% %%F in (*) do certutil -hashfile "%%F" MD5 | find /i /v "certutil:" >> "%CDir%\_checksums_MD5.txt"

Ответы (1 шт):

Автор решения: Solt

find не понимает юникод и портит найденное. Можно поробовать переключить кодировку на 1251 перед вызовом вашего скрипта:

@echo off
chcp 1251 >nul
SET CDir="C:\Tmp"

for /r %CDir% %%F in (*) do certutil -hashfile "%%F" MD5 | find /i /v "certutil:" >> "%CDir%\_checksums_MD5.txt"

Мне помогло:

E:\>certutil.exe -hashfile Тест_.txt MD5 | find /I /V "cert"
╒¤° MD5 ╥хёЄ_.txt:
6841851c92492a0ad99bff548b9e676a
E:\>chcp 1251
1251
E:\>certutil.exe -hashfile Тест_.txt MD5 | find /I /V "cert"
Хэш MD5 Тест_.txt:
6841851c92492a0ad99bff548b9e676a
E:\>
→ Ссылка