|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Автоматическая смена кодировки .txt файлов |
|
CMD/BAT - [решено] Автоматическая смена кодировки .txt файлов
|
Ветеран Сообщения: 2104 |
Доброе время суток. Нужно написать батник, который бы менял кодировку текстовых файлов с UTF на ANSI. Подскажите пожалуйста как подобное можно реализовать.
|
|
Отправлено: 13:28, 29-06-2009 |
Старожил Сообщения: 440
|
Профиль | Отправить PM | Цитировать __sa__nya,
перекодировать 1.txt в 2.txt , удалить 1.txt , переименовать 2.txt в 1.txt не подходит ? |
Отправлено: 11:09, 02-07-2009 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать mitiya, __sa__nya, если в этих файлах удалить первые три псевдосимвола (BOM), RECODE вроде работает... по ходу это наследие никсов... кстати, мануал по утилю: http://www.informatik.uni-hamburg.de...ecode_toc.html
__sa__nya, типа такого?.. с учетом замен двух строчек, как сказал mitiya |
Отправлено: 12:15, 02-07-2009 | #12 |
Ветеран Сообщения: 2104
|
Профиль | Отправить PM | Цитировать amel27, самое оно
![]() Еще вопрос: чтобы скрипт vbs отрабатывал, какая служба в системе должна быть запущена, он же на что-то опирается? |
------- Отправлено: 12:46, 02-07-2009 | #13 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать __sa__nya, WSH - это встроенный набор компонент, службы тут не причем:
- для VBS минимум Win2K, но лучше XP/2003 или обновить WSH до версии 5.6; - для поддержки "ADODB.Stream" минимум XP SP2, иначе накатывать MDAC 2.8 |
Отправлено: 13:04, 02-07-2009 | #14 |
Старожил Сообщения: 440
|
Профиль | Отправить PM | Цитировать а скомпилировать в exe vbs нельзя ? только действительно скомпилировать , а не так как с батниками, вся компиляция которых заключается просто в запихивание в ехе который распаковывает сам батник в темп и от туда запускает его.
|
Отправлено: 02:24, 03-07-2009 | #15 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать mitiya, смысл?.. ИМХО это из разряда извращений, если очень хочется используй AutoIT... в него кста можно запихать и VBS-код
|
Отправлено: 05:12, 03-07-2009 | #16 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать взято из http://forum.oszone.net/post-1156258-6.html
а как выставить принудительно кодировку 866 в получаемом файле в это скрипте? FileIn = "info.xml" FileOut = "info.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 |
------- Отправлено: 01:07, 05-05-2018 | #17 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата anatolysn:
Цитата alexii:
Option Explicit Const adTypeText = 2 Const adModeReadWrite = 3 Const adSaveCreateOverWrite = 2 Dim strSourceFile Dim strDestFile Dim strSourceCharset Dim strDestCharset Dim objFSO Dim strContent strSourceFile = "C:\Мои проекты\0153\0001.xml" strDestFile = "C:\Мои проекты\0153\Result.txt" strSourceCharset = "utf-8" strDestCharset = "cp866" Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") If objFSO.FileExists(strSourceFile) Then With WScript.CreateObject("ADODB.Stream") .Type = adTypeText .Mode = adModeReadWrite .Charset = strSourceCharset .Open .LoadFromFile strSourceFile strContent = .ReadText() .Close .Charset = strDestCharset .Open .WriteText strContent .SaveToFile strDestFile, adSaveCreateOverWrite .Close End With Else WScript.Echo "Can't find source file [" & strSourceFile & "]." WScript.Quit 1 End If Set objFSO = Nothing WScript.Quit 0 |
||
Отправлено: 02:26, 05-05-2018 | #18 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать
пакетный режим не работает когда нужно все файлы в одной папке с расширением log конвертировать в другую кодировку
на единичный файл работает проверил , гуд система windows xp sp3 П.С. Я не программист, ссылки на код не понимаю только юзать умею. ![]() |
------- Последний раз редактировалось anatolysn, 05-05-2018 в 17:47. Отправлено: 15:35, 05-05-2018 | #19 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата anatolysn:
![]() Цитата anatolysn:
Option Explicit Dim strSourceFolder Dim objFile strSourceFolder = "C:\Мои проекты\0153" With WScript.CreateObject("Scripting.FileSystemObject") If .FolderExists(strSourceFolder) Then For Each objFile In .GetFolder(strSourceFolder).Files If StrComp(.GetExtensionName(objFile.Name), "log", vbTextCompare) = 0 Then ConvertFile objFile.Path, "utf-8", "cp866" End If Next Else WScript.Echo "Can't find source folder [" & strSourceFolder & "]." WScript.Quit 1 End If End With WScript.Quit 0 '============================================================================= '============================================================================= Sub ConvertFile(strFile, strSourceCharset, strDestCharset) Const adTypeText = 2 Const adModeReadWrite = 3 Const adSaveCreateOverWrite = 2 Dim strContent With WScript.CreateObject("ADODB.Stream") .Type = adTypeText .Mode = adModeReadWrite .Charset = strSourceCharset .Open .LoadFromFile strFile strContent = .ReadText() .Close .Charset = strDestCharset .Open .WriteText strContent .SaveToFile strFile, adSaveCreateOverWrite .Close End With End Sub '============================================================================= |
||
Отправлено: 02:59, 06-05-2018 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|