Утилита командной строки fciv.exe под Windows 7 SP1 Pro 64 bit Rus не понимает маленькие буквы в русских именах файлов.
chcp 1251 уже есть. Благодаря chcp 1251 имеем нормальный русский язык при выводе, но fciv.exe преобразует передаваемые русские имена по каким-то своим правилам и в результате не может их открыть.
C:\Program Files (x86)\Hash>fciv.exe АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
//
// File Checksum Integrity Verifier version 2.05.
//
аБВГДЕИЖзиЙКлМНОпРСТуфхЦЧШЩЪыьЭЮя\*
С большими буквами почти всё в порядке, только "Ё" почему-то переводится в "И", а вот с маленькими - засада
C:\Program Files (x86)\Hash>fciv.exe абвгдеёжзийклмнопрстуфхцчшщъыьэюя
//
// File Checksum Integrity Verifier version 2.05.
//
абвдеё кмностуфхцъьэюя\*
Смотрим
C:\Program Files (x86)\Hash>fciv.exe АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ > CHARSET
C:\Program Files (x86)\Hash>fciv.exe абвгдеёжзийклмнопрстуфхцчшщъыьэюя >> charset
и видим, что
"г" преобразуется в символ с кодом
0x03,
"з", "и", "й" в
0x7, 0x08, 0x09,
"л" в
0x0B,
"р", "с" в
0x0F, 0x10,
"ч", "ш", "щ" в
0x17, 0x18, 0x19,
"ы" в
0x1B соответственно. То есть из кодов этих букв зачем-то вычитается 0xE0.
(Я не из-под FAR'а запускал, если что. Просто смотрел в нём)
Переводить имена в верхний регистр или переименовывать в латиницу - не выход. Неужели ничего нельзя сделать?