0 / 0 / 0
Регистрация: 03.09.2016
Сообщений: 14
1

Поиск файлов по кодировке, отличной от заданной

04.02.2017, 08:12. Показов 6367. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Прошу помощи, т.к. новичок.
Имеется некое количество txt-файлов в подкаталогах (все именуются aircraft.cfg). Большинство из них, как и нужно, в ANSI, но недавно обнаружил пару в UTF-8. Нужен бат-файл для сканирования каталога на предмет наличия файлов с кодировкой, отличной от ANSI и выведения их списка с путями.
Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2017, 08:12
Ответы с готовыми решениями:

Поиск файлов по заданной строке!!!
Помогите плиз найти ошибку!!!Вроде поиск сам работает а когда вставляю код по поиску подстроки чёт...

Поиск файлов по заданной маске
написал поиск файлов по заданной маске(результат скидывает в txt файл),когда вводишь каталог все...

Поиск одинаковых файлов в заданной директории
здравствуйте. пишу программу, которая ищет все группы одинаковых файлов ненулевого размера в...

Поиск файлов в заданной директории и подпапках
Привет всем, у меня есть такой вопрос на который, надеюсь, кто-то мне даст ответ. Возможно-ли с...

7
5982 / 1991 / 323
Регистрация: 10.12.2013
Сообщений: 6,861
04.02.2017, 11:27 2
Цитата Сообщение от Enzzo Посмотреть сообщение
Большинство из них, как и нужно, в ANSI, но недавно обнаружил пару в UTF-8
всё с точностью до наоборот - для хранения текстовой информации миру нужен Unicode,
a Американский Национальный Стандарт должен уйти в небытие.
1
0 / 0 / 0
Регистрация: 03.09.2016
Сообщений: 14
04.02.2017, 11:53  [ТС] 3
Да разве ж я против ).
Но дело в том, что движок AI в MSFS написан ажно в 2002-м и с тех пор практически не изменился. Отличная от ANSI кодировка конфигов приводит к ошибкам в его работе (вот пруф, если интересно). Средств (программ) поиска файлов по их кодировке найти не удалось. Здесь нашел тему со скриптами по перекодировке, но, видно в силу скудости ума, адаптировать их под свои нужды не могу.
0
5982 / 1991 / 323
Регистрация: 10.12.2013
Сообщений: 6,861
04.02.2017, 12:19 4
Если у тебя последняя модификация Windows 10 с
подключенным Bash, то после
Bash
1
apt-get install uchardet
получаешь установленную утилиту uchardet,
которая умеет эвристически определять кодировку
( базируется на библиотеке проекта Mozilla )

Можно установить Python,
который независим от версии Windows и имеет модуль chardet, использующий
ту же Мозилловскую библиотеку;
в качестве бонуса получишь настоящий инструмент автоматизации Windows.

Имеет подобный модуль Perl,
имеет подобный модуль Java.

Добавлено через 13 минут
да, установка Cygwin или Msys2 также позволит установить uchardet,
как впрочем и установка карманного виртуального Linux ( через Virtualbox )
0
0 / 0 / 0
Регистрация: 03.09.2016
Сообщений: 14
04.02.2017, 12:42  [ТС] 5
Win 7...
Хм, конечно для меня это лес темный, но спасибо. Кажется Python имеется, нужен был для кое-каких плагинов X-Plane.
А для bat/cmd такой возможности нету?
0
5982 / 1991 / 323
Регистрация: 10.12.2013
Сообщений: 6,861
04.02.2017, 13:43 6
cmd ( в девичестве bat ) - это не волшебный ключик, отпирающий любые двери,

а обычный текстовый файл, в котором прописаны команды для последовательного

исполнения ( как правило ) интерпретатором cmd.exe

Команды могут быть внутренними ( файловые: dir, del, copy, mkdir, move, type; управляющие: if, goto, call, for, exit )

или просто являться вызовами внешних консольных утилит: cmd.exe, help.exe, print.exe, find.exe, findstr.exe, more.exe, wmic.exe, where.exe, ping.exe, ipconfig.exe, net.exe etc ( входят в стандартную комплектацию Windows),

a также консольные инструменты cl.exe, powershell.exe, perl.exe, php.exe, python.exe, java.exe etc ( устанавливаются дополнительно )

Добавлено через 8 минут
соответственно, отвечая на твой вопрос,
никакой утилиты для определения кодировки текстового файла
на борту у Windows нет и поэтому бормотание заклинания bat-cmd, bat-cmd, bat-cmd, bat-cmd
делу не поможет.

Добавлено через 27 минут
Цитата Сообщение от Enzzo Посмотреть сообщение
Отличная от ANSI кодировка конфигов приводит к ошибкам в его работе (вот пруф, если интересно)
Если текст конфига только английский и BOM отсутствует, то кодировка UTF-8 ничем не отличается от ANSI
и всё должно работать.
( BOM - это два байта, прицепленных к началу файла,
для кодировки UTF-8 они не нужны и от них можно безболезненно избавиться )
1
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
04.02.2017, 13:55 7
Windows Batch file
1
2
3
4
5
6
7
@echo off
chcp 1251
echo off&pushd "%~dp0"
 
for %%i  in (*.txt) do (
    enca -L ru -m -p "%%i"
)
Чтобы убрать вывод имен файлов:
Код
заменить -p  на -P
Варианты вывода имен кодировок:
Код
-f  - полный формат
-e  - enca формат
-m  - mime-name формат
Скомпилированный (не мной) файл этой юниксовой утилиты:
enca-1.13-compiled.zip
1
0 / 0 / 0
Регистрация: 03.09.2016
Сообщений: 14
04.02.2017, 14:48  [ТС] 8
Цитата Сообщение от volodin661 Посмотреть сообщение
Если текст конфига только английский и BOM отсутствует, то кодировка UTF-8 ничем не отличается от ANSI
и всё должно работать.
Есть подозрение, что как раз ВОМ вызывает проблему.
Спасибо всем за ответы!
0
04.02.2017, 14:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.02.2017, 14:48
Помогаю со студенческими работами здесь

Поиск файлов по расширению в заданной папке
Доброго времени суток. Как "просканировать" заданный каталог, чтобы найтив нем *.jpg файлы и...

Поиск 2х наибольших файлов(папок) в заданной папке
Здравствуйте. Есть такая задача - в заданной папке необходимо найти 2 файла(папки) с наибольшим...

Поиск файлов в заданной папке и копирование посредством Excel
Здравствуйте! Нужен макрос, который будет находить файлы в заданной папке с подпапками и...

Поиск и перенос файлов по заданной маске в указанные папки
$src = 'D:\ready' $dst = 'D:\test\хот' function write-log ($message) { "$(Get-Date...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru