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

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

Ответить
Настройки темы
CMD/BAT - Слияние txt и вывод всех файлов в Unicode

Новый участник


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

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


Добрый день! Есть множество txt файлов в определенной папке. Подскажите как их все переделать в кодировку Unicode (UCS-2 LE BOM)

P.S. Началось с того, что требовалось собрать объединение содержимого (есть русский язык) одноимённых текстовых файлов из нескольких соседних директорий.
Нашел код:
Код: Выделить весь код
@echo off
chcp 1251 
2>nul del/a/f *.txt
 
for /f "delims=" %%i in ('2^>nul dir/a-d/b/s "*.txt"') do (
 set "*%%~nxi=*"
)
for /f "delims=*=" %%i in ('set *') do (
 for /f "delims=" %%j in ('2^>nul dir/a-d/b/s "%%i"') do (
  <"%%j">>"%%i" more
 )
)
 
exit/b
В конечном итоге все файлики меняли свою кодировку с Unicode (UCS-2 LE BOM) на ANSI (win 1251). Как сделать так чтобы кодировка файлов оставалась неизменной?


P.S.S.
Видел такую схему для смены перекодировки:
Код: Выделить весь код
@Echo Off
SetLocal EnableExtensions

Set $FILE=File.txt
Set $TEMP=File.tmp

CHCP 1251
Echo яю>%$TEMP%
CMD /U /C Type %$FILE% >>%$TEMP%

If Exist %$TEMP% DEL /F/Q %$FILE%
REN %$TEMP% %$FILE%
В итоге в каждом файле появлялся квадратик в начале 1-ой строки.

Отправлено: 13:00, 19-02-2016

 

Ветеран


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

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


Цитата ask2886:
Как сделать так чтобы кодировка файлов оставалась неизменной? »
Использовать WSH/PoSH.

Отправлено: 13:32, 19-02-2016 | #2



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

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


Ветеран


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

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


другое порой напрягает.
Когда копи-пасте операцию выполняешь русского текста из non-Unicode приложения в Unicode-приложение.
Как правило вставляет кракозябры.
Может изобретаю велосипед, но пришлось делать перекодировщик для clipboard, который это поправляет.

-------
консольный клиент telegram для Windows: www.elapser.info


Отправлено: 14:07, 19-02-2016 | #3


Новый участник


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

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


Цитата Iska:
Использовать WSH/PoSH. »
А если пойти по 2-ому пути: допустим что все файлики поменяли кодировку, как второй батник применить к множеству текстовых файлов, а затем в каждом txt удалить первый символ 1ой строки?

Отправлено: 14:32, 19-02-2016 | #4


Ветеран


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

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


Цитата Опиум:
Когда копи-пасте операцию выполняешь русского текста из non-Unicode приложения в Unicode-приложение.
Как правило вставляет кракозябры.
Может изобретаю велосипед, но пришлось делать перекодировщик для clipboard, который это поправляет. »
Достаточно просто переключить язык ввода в приложении перед копированием на русский.

Я же лично тупо делаю подмену кодовых страниц Windows (1252--->1251 и т.д.). Говорят, могут быть некоторые проблемы, но я пока не сталкивался.

Цитата ask2886:
А если пойти по 2-ому пути: »
ask2886, проще не идти.

Если опишете исходную задачу, думаю, Вам помогут.

Отправлено: 15:34, 19-02-2016 | #5


Ветеран


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

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


Цитата Iska:
тупо делаю подмену кодовых страниц Windows (1252--->1251 и т.д.). »
да, на какихто компах у меня поправлен так реестр.

А про предварительное переключение раскладки - не слылшал. Век живи - век учись (с)

-------
консольный клиент telegram для Windows: www.elapser.info


Отправлено: 15:51, 19-02-2016 | #6


Ветеран


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

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


Цитата Опиум:
А про предварительное переключение раскладки - не слылшал. »
Угу. То есть, оно бы как бы и не обязательно делать подмену, просто у меня умолчальным языком ввода стоит, как правило, en-us.

Отправлено: 16:00, 19-02-2016 | #7


Новый участник


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

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


Цитата Iska:
Если опишете исходную задачу, думаю, Вам помогут. »
Ну собственно исходная задача, это объединение содержимого одноимённых текстовых файлов (кодировка Unicode), находящиеся в соседних папках. Полученные файлы должны быть тоже в кодировке unicode.

Отправлено: 16:20, 19-02-2016 | #8


Ветеран


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

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


Цитата ask2886:
находящиеся в соседних папках. »
  1. Что значит «в соседних»? Поясните.
  2. В каком порядке должно осуществляться слияние? Или это несущественно?

Отправлено: 16:22, 19-02-2016 | #9


Новый участник


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

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


Цитата Iska:
Что значит «в соседних»? Поясните.
В каком порядке должно осуществляться слияние? Или это несущественно? »
Может не совсем корректно выразился: имелось ввиду: есть папка, в ней - папка1, папка2, папка3.
Слияние осуществлять следующим образом:

файл1.txt папки1
1строка
2строка
файла1.txt папки2
3строка
4строка
файл1.txt папки3
5стркоа
6строка
в итоге:
файл1.txt
1строка
2строка
3строка
4строка
5строка
6строка
и так со всеми файлами, имеющие одинаковые названия в разных папках.

Отправлено: 16:58, 19-02-2016 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Слияние файлов CSV niko_dovgiy Скриптовые языки администрирования Windows 1 08-12-2015 21:37
CMD/BAT - [решено] Удаление всех файлов (всех типов) из всех подпапок, кроме расширений txt kot318 Скриптовые языки администрирования Windows 10 12-02-2015 15:48
CMD/BAT - Слияние содержимого txt файлов в один. rvm.luma Скриптовые языки администрирования Windows 4 07-09-2013 15:11
CMD/BAT - [решено] Сравнение txt файлов и вывод результата LAKERS824 Скриптовые языки администрирования Windows 2 08-07-2012 12:48
CMD/BAT - [решено] Как скопировать содержимое txt файлов всех подкаталогов в один файл dezertic Скриптовые языки администрирования Windows 3 20-10-2009 12:47




 
Переход