|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Правка текстового файла |
|
CMD/BAT - Правка текстового файла
|
Пользователь Сообщения: 69 |
Доброго всем времени суток, подскажите пожалуйста - имеется текстовый файл, много-много строк, примерно такой -
--- текст текст текст 1111111111; текст2 текст2 текст2 2222222222; ... --- вопрос - каким образом можно добавить в начало каждой строки одно и тоже слово, а последнее слово в каждой строке (номер) немного видоизменить ? т.е. на выходе хотелось видеть - --- СЛОВО текст текст текст ФАЙЛ 1111111111 СЛОВО текст2 текст2 текст2 ФАЙЛ 2222222222 ... --- вообще мне это нужно, что бы получить батник spisok.cmd такого вида --- @echo текст текст текст > c:\spisok\1111111111 @echo текст2 текст2 текст2 > c:\spisok\2222222222 --- ну и естественно, после запуска этого батника получаю много-много файлов, содержащих каждый свой текст. Заранее спасибо. |
|
Отправлено: 13:57, 03-07-2012 |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать не, текст везде по длине и блокам у всех совершенно разный (
|
Отправлено: 15:17, 03-07-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать текст и с пробелами и с точками, точкой запятой, полный набор символов )
|
Отправлено: 10:26, 04-07-2012 | #3 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать А зачем, собственно, использовать один батник для генерации другого, если всё можно сделать в одном?
@Echo Off SetLocal EnableDelayedExpansion rem Разбираем исходный файл построчно For /F "usebackq delims=" %%L In ("test.txt") Do ( Set Text=%%L rem Выделяем последний сегмент строки For %%A In (%%L) Do (Set LastWord=%%A) rem Костыль с for из-за невозможности замены с двумя !переменными! For /F "delims=" %%S In ("!LastWord!") Do ( rem Убираем последний сегмент Set Text=!Text:%%S=! rem И откусываем последние два символа - точку с запятой и rem разделитель-пробел Set Text=!Text:~,-2! ) rem Пишем строку в файл, имя которого берется из последнего сегмента её же Echo !Text!>"C:\spisok\!LastWord!.txt" ) Pause Цитата mxm199:
* Длина строки не должна выходить за пределы максимальной длины переменной у командного интерпретатора windows * Восклицательные знаки из текста будут убраны из-за EnableDelayedExpansion * Имя конечного файла должно быть без пробелов, иначе один из циклов For воспримет его, как разделитель. Или, если пробелы нужны - заключено в двойные кавычки. |
|
Последний раз редактировалось Anonymоus, 04-07-2012 в 11:23. Отправлено: 10:53, 04-07-2012 | #4 |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать ПРОСТО ШИКАРНО!!! Очень благодарен, огромное СПАСИБО )))
Не хочется наглеть ))) а возможно сделать, чтобы готовые разбитые файлы были в кодировке UTF8 без BOM ??? |
|
Отправлено: 11:30, 04-07-2012 | #5 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать mxm199, а исходные файлы в UTF-8 без BOM? Если да, то просто сохраните батник в такой же кодировке.
Если нет - можно с легкостью на лету сменять кодировку строки с помощью recode из пакета GNU coreutils |
Отправлено: 11:34, 04-07-2012 | #6 |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать исходный просто в АНСИ, это я понял, что зависит от исходника, при смене на УТФ исходника и готовые получаются в УТФ, ну это я так уже спросил )
....как тут плюс поставить...? |
Отправлено: 11:57, 04-07-2012 | #7 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать |
Отправлено: 12:12, 04-07-2012 | #8 |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать Всё просто супер )
рекоде должна соответственно вместе с батником лежать? |
Отправлено: 14:56, 04-07-2012 | #9 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать Да, или рядом с батником, или в любой директории, прописанной в %Path%.
|
Отправлено: 14:58, 04-07-2012 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2008 - [решено] Правка файла HOSTS в Windows 2008 | wolf_7777 | Windows Server 2008/2008 R2 | 20 | 25-11-2013 23:20 | |
CMD/BAT - [решено] Правка файла hosts c правами администратора | James Marsh | Скриптовые языки администрирования Windows | 2 | 06-12-2010 23:36 | |
CMD/BAT - [решено] Разбивка текстового файла файла | Seryoga204 | Скриптовые языки администрирования Windows | 1 | 04-10-2010 21:19 | |
CMD/BAT - [решено] Как скопировать имя файла из текстового файла в код батника и т.д. | Nun-Nun | Скриптовые языки администрирования Windows | 6 | 13-05-2009 13:28 | |
C/C++ - Открытие текстового файла | .::.DIMA.::. | Программирование и базы данных | 4 | 05-05-2009 12:17 |
|