Сбор хэшей в заданном каталоге для файлов со спецсимволами в именах
Следующий код помещает хеш-суммы файлов из заданного каталога в файл "_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:\>