Кракозябры при выводе результатов в файл из cmd
Командная строка (cmd.exe) – это один из основных инструментов системного администратора. Но у него есть недостаток. При выводе результата команды в текстовый файл в локализованной Windows, прочитать его содержимое не получится. Для примера вывел в файл справку программы ping:
ping /? >test.txt
Перечитал кучу информации по этой теме, но нормального решения не нашел.
Остановился на варианте – переводить кодировку консоли в 855 (По умолчанию — 866), в которой все будет выводиться на английском языке. Перед выводом в файл ввожу в командную строку:
chcp 855
После этого все описания и комментарии к командам будут в оригинале, т.е. на английском. Чтобы вернуть кодировку по умолчанию, нужно указать кодировку 866, либо 1251 (Unicode – 65001).
Теперь при написании командных файлов (.bat), пишу в самом начале — chcp 855. Пример:
@echo off chcp 855 cls ping /? >test.txt
P.S. Вариант с переходом на шрифт Lucida Console и кодовую страницу 1251 мне не понравился. Он то срабатывает, то нет. Закономерности так и не заметил.
Нашли опечатку в тексте? Пожалуйста, выделите ее и нажмите Ctrl+Enter! Спасибо!
Хотите поблагодарить автора за эту заметку? Вы можете это сделать!
Я пользуюсь консольным перекодировщиком xcode.exe
Примеры использования:
ping /? |xcode -p -s >ping.help.txt
или, если автоопределение подводит:
ping /? |xcode -p -s +a -w >ping.help.txt
Другой пример:
xcode +w -a -s patch.reg
Страница программы www.rusf.ru/books/yo/xcode.html
Мне пришлось сделать в программе небольшие исправления, см. sehan.narod.ru/download/xcode.zip
Сехан
14 Янв 2012 в 13:26
воспользоваться альтернативными блокнотами, которые понимают кодировку отличную от cp1251
мне нравится Akelpad с некоторыми плагинами, кому-то по душе будет Notepad++ и т.п.
MMX
16 Фев 2012 в 22:24
Вопрос от чайника.А как вывести результат команды,например, ipconfig /all в файл Notepad'а?
Витя
29 Янв 2014 в 05:02
Витя, очень просто —
ipconfig -all >> d:/ipconfig.txt
did5
29 Янв 2014 в 09:20
Проще всего поменять шрифт в блокноте на Terminal.
GloryS
07 Ноя 2014 в 13:25
в батнике:
chcp 1251
echo что-то >> c:\file.txt
Дмитрий
06 Июн 2024 в 17:22