|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Скопировать определенные строки в кодировке "UTF-8" из .txt - файлов |
|
|
VBS/WSH/JS - Скопировать определенные строки в кодировке "UTF-8" из .txt - файлов
|
Новый участник Сообщения: 27 |
Профиль | Отправить PM | Цитировать Есть папка "111" в ней много разных подпапок с разными уровнями. В подпапках текстовые файлы в количестве примерно 14500 штук с расширением .txt большая часть текстовых файлов сохранены в кодировке юникода "UTF-8", также НЕКОТОРЫЕ из них сохранены в кодировке ANSI. Внутри этих текстовых файлов имеются строки в количестве примерно от 5 до 500 СТРОК в каждом текстовом файле.
В каждой строке МОГУТ содержаться пробелы в начале, в конце, в середине, даже пробелы есть после и перед разделителями (":" "=" "-") и пустые строки между строками. Вот пример того, какой текст содержится в одном текстовом файле внутри: (текст с непонятными иероглифами - это тайский язык, взят для примера) РуЧкА!$# БоЧкА:© นี่คือวันอันยิ่งใหญ่ ♥ SёЁщы©♥I♥©Спасибо♥ ¤ © 办公室 λ ½ ▅ & $ 4 Рё En ц™ มิ БоЧкА : © นี่คือวันอันยิ่งใหญ่ ♥ SёЁщы©♥I♥©Спасибо♥ ¤ © 办公室 λ ½ ▅ & $ 4 Рё En ц™ มิ https://taxi.yandex.ru/ БоЧкА =Ґ ©Спасибо♥ ¤ © 办公室 λ ½ ▅ & $ 4 Рё En ц™ มิ © นี่คือวันอันยิ่งใหญ่ ♥ SёЁщы©♥Iв™ диск www.avito.ru/sankt-peterburg/ БоЧкА - !@#$%^&*() !@#$%^&*() !@#$%^&*()!@# $%^&*()!@# $%^&*()!@#$%^&*() http://www.avito.ru/ БоЧкА Д!@#$%^&*() !@#$%^&*() !@#$%^&*()!@# $%^&*()!@# $%^&*()!@#$%^&*() БоЧкАФ!@#$%^&*() !@#$%^&*() !@#$%^&*()!@# $%^&*()!@# $%^&*()!@#$%^&*() serVeR !!!"""№№№;;;%% %:::???***((()))!!!"""№№№;;;%%%:::???* **((())) serVeR:© นี่คือวันอันยิ่งใหญ่ ♥ SёЁщы©♥I♥©Спасибо♥ ¤ © 办公室 λ ½ ▅ & $ 4 Рё En ц™ มิ serVeR : © นี่คือวันอันยิ่งใหญ่ ♥ SёЁщы©♥I♥©Спасибо♥ ¤ © 办公室 λ ½ ▅ & $ 4 Рё En ц™ มิ serVeR =Ґ ©Спасибо♥ ¤ © 办公室 λ ½ ▅ & $ 4 Рё En ц™ มิ © นี่คือวันอันยิ่งใหญ่ ♥ SёЁщы©♥Iв™ Адреса сайтов... https://www.avito.ru/irkutsk/ serVeR - !@#$%^&*() !@#$%^&*() !@#$%^&*()!@# $%^&*()!@# $%^&*()!@#$%^&*() диск serVeR Д!@#$%^&*() !@#$%^&*() !@#$%^&*()!@# $%^&*()!@# $%^&*()!@#$%^&*() serVeR!@#$%^&*() !@#$%^&*() !@#$%^&*()!@# $%^&*()!@# $%^&*()!@#$%^&*() Нужно чтобы после запуска VBS скрипта с помощью использования "ADO" Создался ОДИН текстовый файл с расширением .txt в него скопировать строки идущие после разделителя и без разделителя, указанных слов..в нашем примере это:"БоЧкА" "serVeR". А те части строчки которые идут после разделителей ":" где адреса сайтов будут игнорироваться, адреса сайтов мне не нужны! В основу кода можно взять то что они начинаются со строк "https" "http" "www"! Слова "БоЧкА" "serVeR" взяты чисто для примера, но по возможности нужно сделать так, чтобы их можно было в скрипте vbs поменять на свои, они могут быть написаны русскими словами или английскими ("указынные слова" не используют спецсимволы юникода). Убрать все пробелы которые которые идут между разделителем (":" "=" "-") и началом части строки (которая в юникоде записана), удалить пустые строки. Заранее извиняюсь, если я не все объяснил, просто я новичок, прошу сильно не пинать. Я только начинаю изучать создание скриптов VBS. Рассматривать буду разные методы решения одной и той же задачи НА VBS - это для моего познания так сказать Вот что должно получиться после запуска VBS скрипта с помощью использования "ADO" © นี่คือวันอันยิ่งใหญ่ ♥ SёЁщы©♥I♥©Спасибо♥ ¤ © 办公室 λ ½ ▅ & $ 4 Рё En ц™ มิ © นี่คือวันอันยิ่งใหญ่ ♥ SёЁщы©♥I♥©Спасибо♥ ¤ © 办公室 λ ½ ▅ & $ 4 Рё En ц™ มิ Ґ ©Спасибо♥ ¤ © 办公室 λ ½ ▅ & $ 4 Рё En ц™ มิ © นี่คือวันอันยิ่งใหญ่ ♥ SёЁщы©♥Iв™ !@#$%^&*() !@#$%^&*() !@#$%^&*()!@# $%^&*()!@# $%^&*()!@#$%^&*() Д!@#$%^&*() !@#$%^&*() !@#$%^&*()!@# $%^&*()!@# $%^&*()!@#$%^&*() Ф!@#$%^&*() !@#$%^&*() !@#$%^&*()!@# $%^&*()!@# $%^&*()!@#$%^&*() !!!"""№№№;;;%% %:::???***((()))!!!"""№№№;;;%%%:::???* **((())) © นี่คือวันอันยิ่งใหญ่ ♥ SёЁщы©♥I♥©Спасибо♥ ¤ © 办公室 λ ½ ▅ & $ 4 Рё En ц™ มิ © นี่คือวันอันยิ่งใหญ่ ♥ SёЁщы©♥I♥©Спасибо♥ ¤ © 办公室 λ ½ ▅ & $ 4 Рё En ц™ มิ Ґ ©Спасибо♥ ¤ © 办公室 λ ½ ▅ & $ 4 Рё En ц™ มิ © นี่คือวันอันยิ่งใหญ่ ♥ SёЁщы©♥Iв™ !@#$%^&*() !@#$%^&*() !@#$%^&*()!@# $%^&*()!@# $%^&*()!@#$%^&*() Д!@#$%^&*() !@#$%^&*() !@#$%^&*()!@# $%^&*()!@# $%^&*()!@#$%^&*() !@#$%^&*() !@#$%^&*() !@#$%^&*()!@# $%^&*()!@# $%^&*()!@#$%^&*() |
|
Отправлено: 14:49, 17-06-2020 |
Старожил Сообщения: 193
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось Fors1k, 22-06-2020 в 14:40. Отправлено: 13:01, 22-06-2020 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 27
|
Профиль | Отправить PM | Цитировать Цитата Fors1k:
|
|
Отправлено: 12:13, 26-06-2020 | #3 |
Новый участник Сообщения: 27
|
Профиль | Отправить PM | Цитировать Fors1k, во время запуска появляется окно с ошибкой, строка 1 символ 7
|
Отправлено: 12:15, 26-06-2020 | #4 |
Старожил Сообщения: 193
|
Профиль | Отправить PM | Цитировать Этот код вам нужно выполнить в PowerShell.
|
|
Последний раз редактировалось Fors1k, 26-06-2020 в 13:01. Отправлено: 12:51, 26-06-2020 | #5 |
Новый участник Сообщения: 27
|
Профиль | Отправить PM | Цитировать Да, догадался что в PowerShell нужно выполнить ...но тем не менее все равно и в PowerShell ошибки красные показывает...я видимо что то не так делаю. Сохранял в буфер обмена код и вставлял, потом пробовал просто файл с кодом сохранить в расширении .ps1 и нажимал выполнить в PowerShell, красные ошибки повторяются в разных вариантах, хотя пути пробовал ставить как в коде. Скриншот ошибки в PowerShell во вложении
|
Отправлено: 13:26, 26-06-2020 | #6 |
Старожил Сообщения: 193
|
Профиль | Отправить PM | Цитировать |
Отправлено: 13:41, 26-06-2020 | #7 |
Новый участник Сообщения: 27
|
Профиль | Отправить PM | Цитировать Спасибо Fors1k! Код Работает отлично! Данные из текстового файла сохраняет нужные! Но это только при условии, если все текстовые файлы расположены по пути C:\Files\111\eee.txt Можно ли сделать так чтобы проверялись в "указанной папке" и все ее "ПОДПАПКИ" (текстовые файлы) + как то сделать так чтобы в "текстовом файле результата" не повторялись строчки т.е. чтобы не были строчки одинаковыми. Дело в том, что среди многочисленных текстовых файлах может встретиться одинаковая строчка, хотя имя текстового файла может быть разным.
|
Отправлено: 14:27, 26-06-2020 | #8 |
Старожил Сообщения: 193
|
Профиль | Отправить PM | Цитировать param( $PathIn = "C:\Files\111", $PathOut = "C:\result.txt", $words = ("serVeR","БоЧкА"), $delims = ("-"," ", "=",":") )cls gci $pathin *.txt -rec|%{(((gc $_.FullName -raw)| sls "(?<=($($words -join '|'))).*" -all).Matches. Value).TrimStart($delims).Trim()|%{if($_ -notin $t) {$_|out-file $PathOut -append;[string[]]$t+= $_}}} |
Последний раз редактировалось Fors1k, 26-06-2020 в 20:14. Отправлено: 18:42, 26-06-2020 | #9 |
Новый участник Сообщения: 27
|
Профиль | Отправить PM | Цитировать Теперь код выполняет все что нужно! Код - супер! Большая благодарность Fors1k за предоставленный код! Задача можно сказать уже решена. Мне будет еще интересно узнать, какими еще вариантами можно выполнить эту же задачу? Это для моего познания. В PowerShell все хорошо работает, а например на vbs или даже в bat вот такое возможно ли реализовать?
|
Отправлено: 15:54, 27-06-2020 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Скрипт: "ProgrBar" копирования всех файлов из папки "Media" | ufooo000 | Скриптовые языки администрирования Windows | 5 | 20-07-2017 20:58 | |
CMD/BAT - Как из строки в .txt вывести символы "которые там обновляются"в другой .txt | Bombastig | Скриптовые языки администрирования Windows | 6 | 08-02-2014 04:54 | |
CMD/BAT - [решено] Нужно создать "батник" - вырезать из "2.txt" первых n строк и вставить их в "1.txt" | temphard | Скриптовые языки администрирования Windows | 12 | 10-01-2014 18:36 | |
CMD/BAT - вытащить из 3-x txt файлов строки в 4-й txt и отправить его в шару на сервер | campbell | Скриптовые языки администрирования Windows | 1 | 10-11-2011 09:59 | |
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") | submaster | Microsoft Windows NT/2000/2003 | 5 | 13-09-2006 12:29 |
|