![]() |
Замена текста в интервалах
Здравствуйте.
Нуждаюсь в вашей помощи. Нашла такой скрипт. Код:
Option Explicit Можно его как-нибудь модифицировать, чтобы он искал начало и конец, а всё что в промежутке заменял? Пример. HTML код:
<table> скрипт берёт конец <tr><td class="thead">Разное</td></tr> заменяет информацию, которая находится между этими строками. Помогите пожалуйста. |
Не тот уже oszone... Не хотят помогать :(
|
На PowerShell:
Код:
$a = gc 1.txt # 1.txt исходный файл |
Здесь задаётся в коде условие.
А можно, чтобы условия поиска он брал из txt файла. Т.к. замен будет много, а мне нужен универсальный скрипт, которому я буду подсовывать только условия поиска. |
Цитата:
|
Цитата:
|
Понятно. Исправил предложенный тобой скрипт.
Не тестировал, поэтому первый запуск советую произвести на тестовой папке с копиями реальных файлов. В теории все должно работать :) Если чего то работать не будет или будет работать не так, опиши подробно что не так. Перед использованием читай описание внизу сообщения. Код:
Option Explicit Теперь скрипт нужно запускать не с 4 параметрами, а с 5.
Соответственно файлов с информацией теперь будет 3:
Условия выполнения замены (важно): Если в файле начальной строки и в файле конечной строки есть информация и она найдена в тексте, то будет произведена обычная заменя ОТ -- ДО Если в файле начальной строки ничего нет, а в файле конечной строки есть информация и она найдена, то будет произведена замена с самого начала файла до конечной строки Если в файле начальной строки есть информация и она найдена, а в файле конечной строки ничего нет, то будет произведена замена от начальной строки до конца файла |
Ага, спасибо! А как всю эту прелесть вызывать теперь?
Раньше вот так вызывала. Код:
cscript.exe //nologo replace.vbs /FolderForScan:"%UserProfile%\Рабочий стол\work" /FileExtension:"html" /FileWhatFind:"text\art_s.txt" /FileReplaceBy:"text\art_r.txt" |
Запустила вот так
Код:
cscript.exe //nologo from_to.vbs /FolderForScan:"C:\from_to" /FileExtension:"html" /FileReplaceBy:"text\FileReplaceBy.txt" /FileFindFrom:"text\FileFindFrom.txt" /FileFindTo:"text\FileFindTo.txt" C:\from_to\from_to.vbs(127, 29) Ошибка компиляции Microsoft vbscript: Предполагается наличие окончания инструкции |
Все правильно, это же VBS тут нельзя указывать типы переменных :)
Исправьте Dim posFrom As Currency Dim posTo As Currency на Dim posFrom Dim posTo в скрипте и попробуйте еще |
Цитата:
Цитата:
Только есть небольшие мелочи, которые хотелось бы добавить: - если совпадение from или to не найдено, то скрипт выдаёт MsgBox с ошибкой, указывая на файл, при этом прекращает дальнейшую работу. |
Цитата:
Сообщение он должен выводить, если не найден один из файлов. Так задумано. Однако FintTo или FindFrom можно оставить пустыми. при этом сами файлы должны существовать. Хотя исправь в скрипте вот эту строку If posFrom > Len(strFindFrom) And posTo > 0 Then на If posFrom > Len(strFindFrom) Or posTo > 0 Then |
Сейчас он выдаёт такую ошибку, если не найдено совпадение конца поиска (strFindTo)
C:\from_to\from_to.vbs(147, 4) Ошибка выполнения Microsoft vbscript: Недопустимый вызов или аргумент процедуры: 'Mid' Если не найдено совпадение начала поиска (strFindFrom), то оно просто заменяет от начала документа до конца поиска (strFindTo). Цитата:
Цитата:
|
Время: 07:39. |
Время: 07:39.
© OSzone.net 2001-