View previous topic :: View next topic |
Author |
Message |
Jonmey
Joined: 27 Sep 2010 Posts: 45
|
(Separately) Posted: Mon Mar 07, 2011 00:49 Post subject: |
|
|
Flasher
Quote: | Бинарность файла не указывает на то, в каком формате нужно обрабатывать файл. |
Ну это разве что для вас бинарность не показатель и вы редактируете такие файлы в Блокноте, а для всех остальных - это означает шестнадцатеричное редактирование со всеми вытекающими.
Если у вас нет конкретного решения соответствующего заданным выше условиям, то вы меня очень обяжете, если воздержитесь далее от пустых разговоров на эту тему. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Mar 07, 2011 01:03 Post subject: |
|
|
Jonmey wrote: | и вы редактируете такие файлы в Блокноте | Это что ещё за глупость? Ах, да, сейчас уже начинаю припоминать причину подобных "выводов"... Jonmey wrote: | а для всех остальных - это означает шестнадцатеричное редактирование со всеми вытекающими | Только за остальных говорить не надо, а уж тем более за всех, подавляющая масса которых даже представления об этом не имеет.
Jonmey wrote: | Если у вас нет конкретного решения соответствующего заданным выше условиям, то вы меня очень обяжете, если воздержитесь далее от пустых разговоров на эту тему. | Пустые разговоры - это утверждение того, что не соответствует действительности, что можно наблюдать в предыдущих ваших постах. Я предложил средство автоматизации, которое основную часть указанных потребностей решает. Если никто тут ничем помочь не сможет, то лучше на данный момент не найти решения, в котором помимо D&D выделенных файлов, взятых откуда угодно и в любом кол-ве, есть возможность задать уйму условий для обработки в один проход, чего в батнике реализовать будет почти невозможно (в AutoIt разве только). И вместо того, чтобы дерзить, лучше бы спасибо сказали... |
|
Back to top |
|
 |
CaptainFlint

Joined: 14 Dec 2004 Posts: 6193 Location: Москва
|
(Separately) Posted: Mon Mar 07, 2011 13:35 Post subject: |
|
|
! | CaptainFlint: | Опять перепалка по поводу кто чего и как недопонял? Марш в личку! | _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
 |
Tol!k

Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Mon Mar 07, 2011 18:46 Post subject: |
|
|
Jonmey wrote: | Code: | D1 F2 F0 EE EA E0 5F 31 5F EA EE F2 EE F0 F3 FE 5F E8 F9 E5 EC ?? ?? ?? ?? ?? | (где ?? - любой байт) |
Без масок нельзя? |
|
Back to top |
|
 |
Jonmey
Joined: 27 Sep 2010 Posts: 45
|
(Separately) Posted: Mon Mar 07, 2011 19:36 Post subject: |
|
|
Tol!k
Можно, но задача в том, что найти байты, отмеченные вопросами нужно не в любом месте файла, а только там, где перед ними идет конкретный набор байтов.
При этом, список возможных комбинаций байтов идущих перед заменяемями (и которые остаются неизменными) и список возможных комбинаций байтов, которые нужно заменить - известен. Скажем первый набор включает до 10 вариантов, а второй - до 5 (то есть всего не более 50 возможных комбинаций, если прописать все в явном виде)
Суммарная длина строк = предшествующие байты (неизменяемые) + байты для замены = всегда константа (в моем случае - 31 байт)
Комбинация байтов на которую заменить - всегда одна и та же. |
|
Back to top |
|
 |
Tol!k

Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Mon Mar 07, 2011 22:25 Post subject: |
|
|
параметры для Батиного скрипта
Code: | "(\xD1\xF2\xF0\xEE\xEA\xE0\x5F\x31\x5F\xEA\xEE\xF2\xEE\xF0\xF3\xFE\x5F\xE8\xF9\xE5\xEC).{5}" "$1\xD1\xF2\xF0\xEE\xEA" %L |
Бэкапы не создаются! |
|
Back to top |
|
 |
shveicar

Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Fri Jun 24, 2011 13:05 Post subject: Замена текста(группа htmlфайлов) из файла ссписка |
|
|
Здравствуйте! На днях столкнулся с такой проблемой - Существует более 100 файлов html. Все они имеют разные имена, но во всех одна и та-же строчка в теге которую нужно заменить, а именно
Code: |
<META HTTP-EQUIV="Refresh" CONTENT="0; URL=prise.zip"> | (заменить нужно prise.zip) Замена должна производиться из тексового файла в котором список ссылок для замены. Пример Code: | Flo-001-HawaiianBeauty.wmv
Flo-002-WetTshirt.wmv
Flo-003-Interview.wmv | Естественно число html файлов и число ссылок в текстовом файле совпадают, то есть в каждом выделенном файле html производится замена одной ссылки на одну ссылку по порядку из текстового файла списка. пример файл имя 1 html (замена тега внутри) prise.zip на Flo-001-HawaiianBeauty.wmv файл имя 2.html (замена тега внутри)prise.zip на Flo-002-WetTshirt.wmv и так далее по списку. Если возможно создать такой скрипт - буду очень признателен, поскольку существующие программы типа text pipe - могут менять только одну ссылку в одном файле и к сожалению не всегда корректно. Спасибо.
Last edited by shveicar on Fri Jun 24, 2011 15:13; edited 1 time in total |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jun 24, 2011 13:51 Post subject: |
|
|
shveicar wrote: | программы типа text pipe - могут менять только одну ссылку в одном файле и к сожалению не всегда корректно. | Есть полно других многопроходных программ и скрипт, ссылку на который я приводил во втором посте, но суть не в этом. Тут и вправду отдельный скрипт нужен. Вроде несложно. Посмотрим как со временем. |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2226 Location: Москва, Россия
|
(Separately) Posted: Fri Jun 24, 2011 14:15 Post subject: |
|
|
shveicar
vbs-скрипт:
Code: | '================================================================================
' Замена текста в файлах с помощью шаблонов.
' Шаблоны:
' %Name% - имя файла с расширением;
' %FromFileArr% - значение из соответствующей строки файла {файл со значениями замены}.
'
' Параметры:
' {текст для поиска} {текст для замены с шаблонами} {режим кавычек} {файл-список} [{файл со значениями замены}]
' где {режим кавычек}:
' 0 - без учёта (по умолчанию),
' 1 - считать одинарные кавычки в тексте для поиска\замены двойными
'================================================================================
Option Explicit
Dim FSO, WSH, F, FF, Mode, Str1, Str2, Errors, i, FZ, ArrZ
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
Set Errors = CreateObject("Scripting.Dictionary")
With WScript
Str1 = .Arguments(0)
Str2 = .Arguments(1)
Mode = .Arguments(2)
FF = .Arguments(3)
If .Arguments.Count > 4 Then FZ = .Arguments(4)
End With
If InStr(1, Str2, "%FromFileArr%", 1) > 0 Then
ArrZ = Split(FSO.OpenTextFile(FZ, 1).ReadAll, vbNewLine, -1, 1)
End If
If Mode = 1 Then
Str1 = Replace(Str1, "'", """")
Str2 = Replace(Str2, "'", """")
End If
i = 0
On Error Resume Next
With FSO.OpenTextFile(FF, 1)
Do While Not .AtEndOfStream
i = i + 1
F = Trim(.ReadLine)
If F <> "" Then
F = FSO.GetAbsolutePathName(WSH.ExpandEnvironmentStrings(F))
If FSO.FileExists(F) Then
ReplaceInFile F, Str1, Str2, i
If Err.Number > 0 Then
Errors.Add F, Err.Description
Err.Clear
End If
End If
End If
Loop
.Close
End With
On Error GoTo 0
If Errors.Count > 0 Then MsgBox JoinErr(Errors), 0, "Замена текста в файлах с помощью шаблонов"
Set Errors = Nothing
Set WSH = Nothing
Set FSO = Nothing
WScript.Quit 0
Sub ReplaceInFile(pPath, pStr1, pStr2, pLevel)
Dim lText
If FSO.GetFile(pPath).Size > 0 Then
lText = FSO.OpenTextFile(pPath, 1, False, 0).ReadAll
If InStr(lText, pStr1) > 0 Then
lText = Replace(lText, pStr1, TemplReplace(pPath, pStr2, pLevel))
FSO.OpenTextFile(pPath, 2).Write lText
End If
End If
End Sub
Function JoinErr(pDic)
Dim lKey
For Each lKey In pDic
JoinErr = JoinErr & vbNewLine & _
"Файл """ & lKey & """ - " & pDic(lKey)
Next
JoinErr = "Для следующих файлов операция завершена с ошибками:" & vbNewLine & JoinErr
End Function
'Функция замены с помощью шаблонов
Function TemplReplace(pPath, pText, pLevel)
Dim lText, lRepl
lText = pText
lText = Replace(lText, "%Name%", FSO.GetFile(pPath).Name)
If IsArray(ArrZ) Then
If UBound(ArrZ) < (pLevel - 1) Then
lRepl = ""
Else
lRepl = ArrZ(pLevel - 1)
End If
lText = Replace(lText, "%FromFileArr%", lRepl)
End If
TemplReplace = lText
End Function
|
Кнопка для твоего случая:
Quote: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WHS\TemplReplace.vbs
"<META HTTP-EQUIV='Refresh' CONTENT='0; URL=prise.zip'>" "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=%%FromFileArr%%'>" 1 %L filelist.txt
shell32.dll,1
Массовая замена
-1
|
Из-за проблем передачи параметров, содержащих кавычки, пришлось ввести параметр {режим кавычек}. _________________ Нет, я не сплю. Я просто медленно моргаю.
Last edited by Batya on Mon Jun 27, 2011 18:09; edited 1 time in total |
|
Back to top |
|
 |
shveicar

Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Fri Jun 24, 2011 15:11 Post subject: Спасибо за помощь |
|
|
Пытаюсь проверить - жму кнопку скрипта ничего не происходит.
Мои действия - выделяю группу -html файлов вида 1.html , 2.html и тд
список с именами замен filelist.txt находится в той же папке что и сам скрипт, пробовал также класть его в папку с файлами html жму кнопку- и тишина. (надеюсь имя и расположение самого скрипта значения не имеет?) |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jun 24, 2011 15:23 Post subject: |
|
|
shveicar
Надо либо указывать в параметрах полный путь (лучше в кавычках) к filelist.txt либо класть его в одну папку со скриптом. |
|
Back to top |
|
 |
shveicar

Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Fri Jun 24, 2011 15:30 Post subject: |
|
|
Quote: | Надо либо указывать в параметрах полный путь к filelist.txt либо класть его в одну папку со скриптом. | Так я проверял с разными путями результат одинаковый-(ничего не происходит)
Добавлено спустя 6 минут:
Может быть дело в самом коде html - на всякий случай привожу полное содержание html файла Code: | <HTML><HEAD><META HTTP-EQUIV="Refresh" CONTENT="0; URL=prise.zip"><TITLE>302 File moved</TITLE></HEAD></HTML> |
|
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jun 24, 2011 15:38 Post subject: |
|
|
shveicar
В каком смысле "с разными"? Путь должен соответствовать местонахождению файла. Но это в случае, если файл не положен в одну папку со скриптом. И кавычки при пробелах должны быть учтены. Режимы оба пробовались? |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2226 Location: Москва, Россия
|
(Separately) Posted: Fri Jun 24, 2011 15:55 Post subject: |
|
|
shveicar wrote: | Пытаюсь проверить - жму кнопку скрипта ничего не происходит.
Мои действия - выделяю группу -html файлов вида 1.html , 2.html и тд
список с именами замен filelist.txt находится в той же папке что и сам скрипт |
Изначально я понял задачу не так, как сейчас описывается процедура проверки.
Я считал, что в файле filelist.txt лежит список файлов для замены, а не заменяемый текст.
Чуть позже сделаю под твой вариант. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
 |
shveicar

Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Fri Jun 24, 2011 16:20 Post subject: |
|
|
Ну конечно, речь идет именно о замене фрагмента текста в теге, как я и пытался (видимо не совсем понятно) объяснить. Спасибо, буду ждать. |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|