Цитата:
Цитата null999
имя, кодировка и путь к файлу известно, »
|
Спасибо, кэп. Я как бы в курсе того, что они известны Вам. Но не мне. И если имя и путь не существенны для конечного вида кода, то от кодировки зависит, как именно он будет выглядеть.
Мне-то что, я сделаю по наиболее простому варианту, а если у Вас из-за кодировки не отработает (или концы строк окажутся не CrLf (DOS/Windows), а, скажем, Cr (Mac), або Lf (Unix)) — это же не проблема, я ведь добрая фея, и здесь только для того, чтобы выполнять Ваши желания, переделаю раз, другой, третий — по первому Вашему требованию.
Пробуйте:
Скрытый текст
Код:
Option Explicit
Dim strSourceFile
Dim strContent
Dim objRegExp
If WScript.Arguments.Count = 1 Then
strSourceFile = WScript.Arguments.Item(0)
With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strSourceFile) Then
With .OpenTextFile(strSourceFile)
strContent = .ReadAll()
.Close
End With
Set objRegExp = WScript.CreateObject("VBScript.RegExp")
With objRegExp
.IgnoreCase = True
.Global = True
.Pattern = "мама"
End With
If objRegExp.Test(strContent) Then
.CopyFile strSourceFile, .GetBaseName(strSourceFile) & ".bak" ,True
Randomize Timer
With .CreateTextFile(strSourceFile, True)
.Write objRegExp.Replace(strContent, Array("Мама", "мыла", "раму")(Int(Rnd * 3)))
.Close
End With
Else
WScript.Echo "Pattern [" & objRegExp.Pattern & "] not found in content of source file [" & strSourceFile & "]."
WScript.Quit 3
End If
Set objRegExp = Nothing
Else
WScript.Echo "Can't find source file [" & strSourceFile & "]."
WScript.Quit 2
End If
End With
Else
WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ <Source file>"
WScript.Quit 1
End If
WScript.Quit 0
Сохраните код в файл с расширением .vbs. Путь к исходному файлу задаётся параметром скрипта (также можно просто перетащить исходный файл на скрипт в Проводнике). Копия исходного файла будет сохранена с расширением .bak (при этом существующий файл .bak, если он есть, будет молча перезаписан).
|