Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Автоматическая смена кодировки .txt файлов

Ответить
Настройки темы
CMD/BAT - [решено] Автоматическая смена кодировки .txt файлов

Ветеран


Сообщения: 2099
Благодарности: 143


Конфигурация

Профиль | Отправить PM | Цитировать


Доброе время суток. Нужно написать батник, который бы менял кодировку текстовых файлов с UTF на ANSI. Подскажите пожалуйста как подобное можно реализовать.

Отправлено: 13:28, 29-06-2009

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


AFAIK только UTF-16LE, если речь про UTF-8 без посторонних утилит не обойтись, варианты:

recode из комплекта UNIX портов:
Код: Выделить весь код
recode -f utf8/crlf..cp1251 <1.txt >2.txt
TCODE Алексея Бойко:
Код: Выделить весь код
tcode 1.txt /utf 2.txt /win

Отправлено: 07:30, 30-06-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 440
Благодарности: 12

Профиль | Отправить PM | Цитировать


а можно как-то перекодировать слова в cmd ?
Просто я с помощью команды for добыл из файла нужное место, а оно на русском и в кодировке UTF-8, а мне потом его надо записать в файл в кодировке 1251.

Отправлено: 18:22, 30-06-2009 | #3


Старожил


Сообщения: 440
Благодарности: 12

Профиль | Отправить PM | Цитировать


Цитата amel27:
recode -f utf8/crlf..cp1251 <1.txt >2.txt »
у меня на выходе получается файл 0 кб

Отправлено: 23:13, 30-06-2009 | #4


Ветеран


Сообщения: 2099
Благодарности: 143

Профиль | Отправить PM | Цитировать


amel27, tcode вместо русских букв на выходе дает вопросы, а recode файл весом 0 кб.

-------
"Нет" - войне.


Отправлено: 07:34, 01-07-2009 | #5


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


mitiya, __sa__nya, у меня вроде обе работают, ...нужен пациент
не совсем в тему - вариант на VBS, вызвать из CMD не составит проблемы:
Код: Выделить весь код
FileIn  = "in.txt"
FileOut = "out.txt"

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(FileOut, 2, vbTrue)
strText = FileDecode(FileIn, "utf-8")
objFile.WriteLine(strText)

Function FileDecode (strFile, strCP)
   Set Stream = CreateObject("ADODB.Stream")
   With Stream
     .Type = 2
     .Mode = 3
     .CharSet = strCP
     .Open
     .LoadFromFile(strFile)
   End With

   FileDecode = Stream.Readtext()
   Stream.Close
End Function
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:01, 01-07-2009 | #6


Старожил


Сообщения: 440
Благодарности: 12

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: rar ibases.rar
(1.6 Kb, 59 просмотров)

скрипт работает, спасибо. А вот recode ни в какую. Пациента прикрепляю.

Отправлено: 23:20, 01-07-2009 | #7


Ветеран


Сообщения: 2099
Благодарности: 143

Профиль | Отправить PM | Цитировать


amel27, скрипт не пробовал, но recode не работает, во вложении readme.txt - оригинал, readme_recoded - после обработки recode.
Скрипт попробовал, работает, но вот еще нужно, чтобы имя файла было не в него зашито, а ему передавалось батником, и чтобы файл-источник и файл-приемник был одним файлом, короче нужно так, чтобы из файла c UTF-8 кодировкой автоматом делался файл с ANSI-кодировкой. Что-нибудь такое: dir /B *.txt | recode.vbs.
Так возможно сделать?

Последний раз редактировалось __sa__nya, 28-07-2011 в 14:35.


Отправлено: 07:32, 02-07-2009 | #8


Старожил


Сообщения: 440
Благодарности: 12

Профиль | Отправить PM | Цитировать


__sa__nya,

просто замени первые строчки.


Код: Выделить весь код
FileIn  = Wscript.arguments.Item(0)
FileOut = Wscript.arguments.Item(1)
recode.vbs 1.txt 2.txt

Отправлено: 09:01, 02-07-2009 | #9


Ветеран


Сообщения: 2099
Благодарности: 143

Профиль | Отправить PM | Цитировать


mitiya, не проходит, мне нужна конструкция, указанная выше: dir /B *.txt | recode.vbs - т.е в папке находится батник, vbs- скрипт, и файл, кодировку которого нужно сменить, имя файла постоянно будет изменяться, первые строки изменял, выходит ошибка Windows Script Host: "Индекс выходит за пределы допустимого диапазона". Т.е файл-источник с UTF-кодировкой должен потом стать файлом с ANSI-кодировкой, количество файлов не должно стать больше.

-------
"Нет" - войне.


Отправлено: 10:12, 02-07-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Автоматическая смена кодировки .txt файлов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как скопировать содержимое txt файлов всех подкаталогов в один файл dezertic Скриптовые языки администрирования Windows 3 20-10-2009 12:47
CMD/BAT - [решено] Изменение кодировки txt файла из ANSI в UTF-16 LE crashtuak Скриптовые языки администрирования Windows 11 20-08-2009 11:57
[решено] PHP + XSTL | Смена кодировки результирующего файла Coutty Вебмастеру 4 08-12-2008 14:08
Разное - [решено] Превью txt файлов при наведении на него курсора (win XP) 4pok Оформление Windows XP 3 03-12-2008 22:57
Смена кодировки в IRC. zippi Хочу все знать 2 12-07-2006 20:02




 
Переход