Нужен универсальный способ вызова findstr для обработки текстовых файлов в кодировке 1251.
Без предварительной перекодировки входных файлов.
Я уточняю условия (это только один из случаев, просто для примера):
Допустим есть пара тысяч html-файлов - нужно среди них найти все файлы в которых содержится определенная строка (состоящая из кириллицы), чтобы скопировать эти файлы в другой каталог
Если строка не содержит кириллицу, то делаем так
for /F %A in ('findstr /M "строка" *.html') do @xcopy %A C:\backup
Задача заменить findstr на любой bat/cmd-file или даже VBS, но только бы заставить этот findstr искать строки в файлах с кодировкой 1251. Способ простой перекодировки вводимой строки из 1251 в 866 не срабатывает, поскольку этот чертов findstr некоторые перекодированные символы не понимает. Например ю и П.
Единственный, на мой взгляд способ, (хотя и не очень корректный) это сделать собственную таблицу перекодировки, win2dos, и те символы, которые findstr не понимает, заменять на точку.