Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   кодировка в файле вывода (http://forum.oszone.net/showthread.php?t=231557)

Den 29-03-2012 09:58 1889066

кодировка в файле вывода
 
Доброго дня всем!
такой вопрос: как поменять кодировку в файле .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 1889092

это не текстовый файл, так и должно быть

Den 29-03-2012 11:40 1889140

а в какой же файл можно вывести результат?

ferget 29-03-2012 11:50 1889146

а какой результат вы хотите получить?

Den 29-03-2012 11:54 1889151

хочу получить эти данные в файле для дальнейшей обработки

Iska 30-03-2012 12:45 1889956

Den, какие данные? Может, Вам подойдёт «/enum /v»?

vano333 06-04-2012 00:31 1894398

похожий вопрос
как вывести ping -t 1.2.3.4 >> ping.txt
в кодировке 1251
куда подставить chcp 1251?

Iska 07-04-2012 00:02 1894911

Цитата:

Цитата vano333
куда подставить chcp 1251? »

Никуда. «ping.exe» не опрашивает консоль на предмет кодовой страницы. Без «-t» ещё можно поиграться, а так…

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

vano333 07-04-2012 00:56 1894935

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

Iska 07-04-2012 02:46 1894955

Нет, ничего не изменится. Нужно перекодировать. Причём из-за возможного наличия в файле символов перенаправления делать сие надёжнее сторонними утилитами, либо использовать 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



Время: 01:56.

Время: 01:56.
© OSzone.net 2001-