Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Прошу помощи в VBS (http://forum.oszone.net/showthread.php?t=261900)

Destany 05-06-2013 11:41 2162641

Прошу помощи в VBS
 
Добрый день!

Граждане гуру-форумчане!
Очень нужен скрипт на VBS, который бы искал в файле (txt, config, log) строку по маске и заменял её на другую(указанную в скрипте).
Очень-очень нужен...

Iska 05-06-2013 13:10 2162718

1. Кодировка файлов и их максимально возможный размер.
2. Примеры масок.

Destany 05-06-2013 22:07 2162977

Цитата:

Цитата Iska
1. Кодировка файлов и их максимально возможный размер.
2. Примеры масок. »

1. Размер не большой - до 1-2 мб
2. Пример маски - (начало строки, возможно несколько пробелов)<искомое слово>(остальная часть строки - символы,буквы)
3. Кодировка - ANSI

Iska 06-06-2013 13:20 2163248

Destany, например, так:
читать дальше »
Код:

Option Explicit

Const ForReading  = 1
Const ForWriting  = 2


Dim strPath
Dim strReplaceWith

Dim objRegExp

Dim strContent


If WScript.Arguments.Count = 3 Then
        strPath        = WScript.Arguments.Item(0)
        strReplaceWith = WScript.Arguments.Item(2)
       
        With WScript.CreateObject("Scripting.FileSystemObject")
                If .FileExists(strPath) Then
                        Set objRegExp = WScript.CreateObject("VBScript.RegExp")
                       
                        objRegExp.Pattern = WScript.Arguments.Item(1)
                        objRegExp.Global  = True
                       
                        With .OpenTextFile(strPath, ForReading)
                                strContent = .ReadAll()
                                .Close
                        End With
                       
                        Do While objRegExp.Test(strContent)
                                strContent = objRegExp.Replace(strContent, strReplaceWith)
                        Loop
                       
                        With .OpenTextFile(strPath, ForWriting)
                                .Write strContent
                                .Close
                        End With
                Else
                        WScript.Echo "Can't find file [" & strPath & "]."
                End If
        End With
Else
        WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ <file> <Pattern> <Replace with>"
End If

WScript.Quit 0


Пример текстового файла E:\Песочница\0269\0001.txt:
Код:

Мама мыла раму.

Рабы не мы,
Мы не рабы.

Пример вызова скрипта:
Код:

cscript.exe //nologo "0001.vbs" "E:\Песочница\0269\0001.txt" "(.*[^Мм])а(.*)" "$1ы$2"
Результат:
Код:

Мама мылы рыму.

Рыбы не мы,
Мы не рыбы.



Время: 15:08.

Время: 15:08.
© OSzone.net 2001-