|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] вырезать часть текста и скопировать его в новый файл |
|
CMD/BAT - [решено] вырезать часть текста и скопировать его в новый файл
|
Новый участник Сообщения: 44 |
Профиль | Отправить PM | Цитировать
Доброго времени суток.
Существует файл 1.txt. В нем содержится много текста (html код). Необходимо найти определенные части текста и скопировать их в файл 2.txt построчно. Пример части текста Цитата:
Более конкретней: Вот эта часть: <url><loc>https://mysite.com/files/ никогда не меняется. Вот эта часть: promo-category-copy/12345 всегда меняется. Вот эта часть: </loc><lastmod> никогда не меняется. Задача: Найти эту часть: promo-category-copy/12345 скопировать ее и вставить в отдельную строку файла 2.txt. Затем найти следующую такую же часть текста, скопировать ее и вставить в отдельную строку файла 2.txt и так далее. Если с помощью CMD/BAT такая задача в принципе не возможна, то вполне подойдет VBS. Заранее благодарен. Здесь образец: http://forum.oszone.net/attachment.p...4&d=1490531050 Условие: Необходимо найти информацию, которая всегда содержится между этим uploader info=" и этим "> текстом (в данном случае это ссылка), скопировать ее и вставить в файл 2.txt в одной строке и так далее. Спасибо. |
||
Отправлено: 00:30, 26-03-2017 |
Старожил Сообщения: 161
|
Профиль | Отправить PM | Цитировать temphard, *.vbs попробуйте. )))
|
Отправлено: 23:07, 26-03-2017 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 44
|
Профиль | Отправить PM | Цитировать Цитата glukin:
vbs попробуйте » Спасибо, попробовал, вроде работает. А если нужная для поиска ссылка обрамлена вот так <url><loc>https://mysite.com/files/promo-category-copy/12345</loc><lastmod>, то какие параметры поиска необходимо указывать? Хочу вникнуть в суть, чтобы в дальнейшем быть независимым в этом вопросе |
Отправлено: 23:20, 26-03-2017 | #12 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата temphard:
WSH — Windows Script Host, сервер сценариев для Windows. По умолчанию поставляется в комплекте с двумя языками — VBScript и JScript, но в принципе может быть расширен и другими языками со стороны. «.wsh» — расширение для файла описания сценария. Цитата temphard:
|
||
Отправлено: 23:20, 26-03-2017 | #13 |
Новый участник Сообщения: 44
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Здесь полный файл xml. В нем много разных ссылок, но нужно найти и скопировать например только такие ссылки: https://3docean.net/item/mini-cooper-rev/17352183, то есть у которых обязательно присутствует вот эта часть: https://3docean.net/item/ |
|
Последний раз редактировалось temphard, 27-03-2017 в 01:22. Отправлено: 23:38, 26-03-2017 | #14 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Скрытый текст
Option Explicit Dim strSourceFile Dim strDestFile Dim objFSO Dim objXMLDOMSelection Dim objXMLDOMElement strSourceFile = "C:\Мои проекты\0054\02.txt" strDestFile = "C:\Мои проекты\0054\Result.txt" Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") If objFSO.FileExists(strSourceFile) Then With WScript.CreateObject("Microsoft.XMLDOM") .load strSourceFile Set objXMLDOMSelection = .selectNodes("/urlset/url/loc") If Not objXMLDOMSelection Is Nothing Then With objFSO.CreateTextFile(strDestFile, True) For Each objXMLDOMElement In objXMLDOMSelection .WriteLine objXMLDOMElement.text Next .Close End With End If Set objXMLDOMSelection = Nothing End With Else WScript.Echo "Can't find source file [" & strSourceFile & "]." WScript.Quit 1 End If Set objFSO = Nothing WScript.Quit 0 |
Отправлено: 00:30, 27-03-2017 | #15 |
Новый участник Сообщения: 44
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Скрытый текст » Шикарно, спасибо. Воспользовавшись XML Notepad понял, как формируется вот эта строка скрипта Все работает, и кстати быстро. И еще: Можно ли воспользоваться данным скриптом пакетно? Например каким образом указать, чтобы скрипт обработал последовательно все файлы в определенном каталоге и записал нужную информацию в один файл? |
Последний раз редактировалось temphard, 27-03-2017 в 01:22. Отправлено: 00:37, 27-03-2017 | #16 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата temphard:
На WSH: Скрытый текст
Option Explicit
Const strDestFile = "Result.txt"
Dim strSourceFolder
Dim objFSO
Dim objTS
Dim objFile
Dim objXMLDOMSelection
Dim objXMLDOMElement
If WScript.Arguments.Count = 1 Then
strSourceFolder = WScript.Arguments.Item(0)
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(strSourceFolder) Then
Set objTS = objFSO.CreateTextFile(strDestFile, True)
With WScript.CreateObject("Microsoft.XMLDOM")
For Each objFile In objFSO.GetFolder(strSourceFolder).Files
If StrComp(objFSO.GetExtensionName(objFile.Name), "xml", vbTextCompare) = 0 Then
.load objFile.Path
Set objXMLDOMSelection = .selectNodes("/urlset/url/loc")
If Not objXMLDOMSelection Is Nothing Then
For Each objXMLDOMElement In objXMLDOMSelection
objTS.WriteLine objXMLDOMElement.text
Next
End If
Set objXMLDOMSelection = Nothing
End If
Next
End With
objTS.Close
Set objTS = Nothing
Else
WScript.Echo "Can't find source folder [" & strSourceFolder & "]."
WScript.Quit 2
End If
Set objFSO = Nothing
Else
WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ <Source folder>"
WScript.Quit 1
End If
WScript.Quit 0
Исходный каталог указывается аргументом скрипта (можно также просто перетянуть исходную папку на скрипт в Проводнике). Обработке подлежат только файлы с расширением .xml, все прочие игнорируются. Результат записывается в текущий каталог в файл Result.txt. |
|
Отправлено: 01:57, 27-03-2017 | #17 |
Новый участник Сообщения: 44
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Цитата:
Вы уж извините, но понятие: аргументы в скриптах для меня еще темный лес. Цитата:
В любом случае огромная благодарность. Скрипт главную задачу выполняет, вопрос решен! |
||
Отправлено: 03:33, 27-03-2017 | #18 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата temphard:
|
|
Отправлено: 05:44, 27-03-2017 | #19 |
Новый участник Сообщения: 1
|
Профиль | Сайт | Отправить PM | Цитировать |
Отправлено: 23:07, 08-11-2017 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Скопировать в папку, зная только часть ее Имени | magarjoba | Скриптовые языки администрирования Windows | 9 | 15-02-2017 11:12 | |
Любой язык - Скопировать часть блоков из одного текстового файла в другой | Alexander_88 | Скриптовые языки администрирования Windows | 4 | 19-02-2016 14:59 | |
Прочие БД - Нечитается часть текста в Oracle11g | slenok | Программирование и базы данных | 1 | 02-05-2010 23:16 | |
[решено] Как скопировать фрагмент текста из файла PDF | Antonij | Хочу все знать | 12 | 04-02-2009 06:49 | |
windows2003 вырезать часть лога | Angel_Keeper | Microsoft Windows NT/2000/2003 | 2 | 05-12-2007 13:42 |
|