Войти

Показать полную графическую версию : кодировка в файле вывода


Den
29-03-2012, 09:58
Доброго дня всем!
такой вопрос: как поменять кодировку в файле .txt
после
bcdedit /export c:\cmd\1.txt

выдает в файле такую лабуду

regf  зЈup
Н   P  \ ? ? \ c : \ c m d \ 1 . t x t ъF’ѓЄxб«Iиќ‡GџъF’ѓЄxб«Iиќ‡Gџ ыF’ѓЄxб«Iиќ‡Gџrmtm уЖА и т.д

заранее благодарю

ferget
29-03-2012, 10:42
это не текстовый файл, так и должно быть

Den
29-03-2012, 11:40
а в какой же файл можно вывести результат?

ferget
29-03-2012, 11:50
а какой результат вы хотите получить?

Den
29-03-2012, 11:54
хочу получить эти данные в файле для дальнейшей обработки

Iska
30-03-2012, 12:45
Den, какие данные? Может, Вам подойдёт «/enum /v»?

vano333
06-04-2012, 00:31
похожий вопрос
как вывести ping -t 1.2.3.4 >> ping.txt
в кодировке 1251
куда подставить chcp 1251?

Iska
07-04-2012, 00:02
куда подставить chcp 1251? »
Никуда. «ping.exe» не опрашивает консоль на предмет кодовой страницы. Без «-t» ещё можно поиграться, а так…

А зачем оно вообще Вам нужно в 1251?

vano333
07-04-2012, 00:56
чтобы пользователи без лишних телодвижений открыли файл notepad`ом и могли прочесть содержимое
а если это батник а не консоль, что-то изменится?

Iska
07-04-2012, 02:46
Нет, ничего не изменится. Нужно перекодировать. Причём из-за возможного наличия в файле символов перенаправления делать сие надёжнее сторонними утилитами, либо использовать WSH/«mshta.exe», наподобие:
@echo off
setlocal

ping.exe localhost|"%systemroot%\system32\mshta.exe" "javascript:try { var objFSO = new ActiveXObject('Scripting.FileSystemObject'); with (new ActiveXObject('ADODB.Stream')) { Type = 2; Mode = 3; Open(); Charset = 'windows-1251'; WriteText(objFSO.GetStandardStream(0).ReadAll()); Position = 0; Charset = 'cp866'; objFSO.GetStandardStream(1).Write(ReadText()); Close() } } catch (e){}; close();" 1>"ping.txt"
start "" notepad.exe "ping.txt"

endlocal
exit /b 0




© OSzone.net 2001-2012