|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Замена определённых символов и вставка текста. |
|
VBS/WSH/JS - [решено] Замена определённых символов и вставка текста.
|
![]() Пользователь Сообщения: 101 |
Здравствуйте.
Подойдёт любой метод реализации (vbs/wsh/js, php и т.д.) Возникла необходимость в пакетной обработке большого количества файлов. Необходимо:
Один из примеров
Вот что должно получиться после преобразования
И после этих изменений перенести текст в конкретный файл (к нему прописывается путь). Т.е. из одного конкретного файла (например: C:\work\text.txt в нём уже находится обработанный текст) перенести в другой (например: C:\example\hard.xml), при этом удалив всё содержимое hard.xml Будет 20 исходников и 20 конечных файлов, только наполнение каждый раз будет разное. Кодировка конечных фалов должна быть UTF-8 (без BOM) Помогите пожалуйста реализовать, это существенно облегчит мне работу ![]() |
|
Отправлено: 14:56, 27-05-2012 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать На bat это будет выглядеть вот так. Читает из файла in.txt, пишет в файл out.txt.
Но вообще, bat - не лучший выбор для обработки файлов, содержащих '>', '<' и '&'. Кроме того, из-за EnableDelayedExpansion в обрабатываемом тексте исчезнут все восклицательные знаки. |
Отправлено: 15:58, 27-05-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Пользователь Сообщения: 101
|
Профиль | Отправить PM | Цитировать Да, пожалуй bat не подойдёт, это ведь html файл и символов будет большое разнообразие.
|
Отправлено: 16:07, 27-05-2012 | #3 |
![]() Пользователь Сообщения: 101
|
Профиль | Отправить PM | Цитировать Anonymоus, а можно добавить проверку на наличие файла?
Я вот сделал, но как-то наверно не совсем верно @echo off SetLocal EnableDelayedExpansion if exist "C:\1\test\filiali1.txt" ( Echo ^<list^>^<item^>>C:\1\work\out.xml For /F "usebackq delims=" %%A In ("C:\1\test\filiali1.txt") Do ( Set Var=%%A Set Var=!Var:^<=^<! Set Var=!Var:^>=^>! Echo !Var!>>C:\1\work\out.xml ) Echo ^</item^>^</list^>>>C:\1\work\out.xml del "C:\1\test\filiali1.txt" goto next exit /b 0 ) echo Отсутствует файл filiali1.txt... explorer /root,"C:\1\test" goto next pause SetLocal EnableDelayedExpansion :next if exist "C:\1\test_2\perevod1.txt" ( Echo ^<list^>^<item^>>C:\1\work\perevod.xml For /F "usebackq delims=" %%A In ("C:\1\test_2\perevod1.txt") Do ( Set Var=%%A Set Var=!Var:^<=^<! Set Var=!Var:^>=^>! Echo !Var!>>C:\1\work\perevod.xml ) Echo ^</item^>^</list^>>>C:\1\work\perevod.xml del "C:\1\test_2\perevod1.txt" exit /b 0 ) echo Отсутствует файл perevod1.txt... explorer /root,"C:\1\test_2" pause |
Отправлено: 13:23, 29-05-2012 | #4 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать aggressor_, разумнее будет вместо копипаста всего кода, оформить функцией и вызывать уже её. Вам понятно из примера, как это делается?
@Echo Off SetLocal EnableDelayedExpansion Call :Replace "C:\1\test\filiali1.txt" "C:\1\work\out.xml" If Not %ErrorLevel%==0 ( Echo ERROR: File "filiali1.txt" not found Explorer /root,"C:\1\test" ) Call :Replace "C:\1\test_2\perevod1.txt" "C:\1\work\perevod.xml" If Not %ErrorLevel%==0 ( Echo ERROR: File "perevod1.txt" not found Explorer /root,"C:\1\test_2" ) Echo All done Pause Exit :Replace If "%*"=="" Echo USAGE: Call :Replace "infile" "outfile" If Not Exist "%~1" Exit /B 1 Echo ^<list^>^<item^>>"%~2" For /F "usebackq delims=" %%A In ("%~1") Do ( Set Var=%%A Set Var=!Var:^<=^<! Set Var=!Var:^>=^>! Echo !Var!>>"%~2" ) Echo ^</list^>^</item^>>>"%~2" Exit /B 0 |
|
Отправлено: 13:55, 29-05-2012 | #5 |
![]() Пользователь Сообщения: 101
|
Профиль | Отправить PM | Цитировать |
Отправлено: 14:12, 29-05-2012 | #6 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать |
Отправлено: 14:18, 29-05-2012 | #7 |
![]() Пользователь Сообщения: 101
|
Профиль | Отправить PM | Цитировать Цитата Anonymоus:
|
|
Отправлено: 14:23, 29-05-2012 | #8 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать Исключительно восклицательные знаки, остальные символы, с которыми обычно в bat проблемы ('&', '|', etc.) можете использовать без опасений.
|
Отправлено: 15:03, 29-05-2012 | #9 |
![]() Пользователь Сообщения: 101
|
Профиль | Отправить PM | Цитировать Спасибо за помощь!
|
Отправлено: 15:06, 29-05-2012 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBA - VBA WORD При наборе текста, автоматическая вставка изображения HELP! | fearnewstyle | Программирование и базы данных | 3 | 13-11-2011 15:27 | |
[решено] Копирование и вставка текста. | duxa | AutoIt | 3 | 21-12-2010 14:20 | |
[решено] Вставка переменной в поле текста | Freez | AutoIt | 4 | 18-02-2010 10:17 | |
Javascript: Вставка текста в textarea в положение курсора | PahaW | Вебмастеру | 1 | 23-12-2005 10:57 | |
Вставка текста из формы | Casufi | Вебмастеру | 2 | 14-05-2003 11:40 |
|