VBS Как заменить любую цветовую строку (# ******) новым значением - PullRequest
0 голосов
/ 12 июля 2020

пытается заменить в папке разные значения цвета новым, это мой начальный код:

Option Explicit
Dim objFSO, strFolder, objFolder, objFile
Dim strOldValue, strNewValue, objRead, strContents, objWrite
Const ForReading = 1
Const ForWriting = 2
strFolder = "..\..\chrome\OPCEN\TABS"
strOldValue = "#******"
strNewValue = "#F5F5F5"

UPDATE: это рабочий код с использованием RegEx (но указывает на файл, а не на вся папка)

Const ForReading = 1
Const ForWriting = 2

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("..\..\chrome\OPCEN\TABS\tabs.css", ForReading)

strText = objFile.ReadAll
objFile.Close
Set objRegEx = CreateObject("VBScript.RegExp")

objRegEx.Global = True   
objRegEx.IgnoreCase = False
objRegEx.Pattern = "\#[A-Z 0-9]{6}"

strNewText =  objRegEx.Replace(strText, "#F5F5F5")

Set objFile = objFSO.OpenTextFile("..\..\chrome\OPCEN\TABS\tabs.css", ForWriting)
objFile.WriteLine strNewText

objFile.Close

1 Ответ

1 голос
/ 13 июля 2020

Используйте для каждого l oop для обработки файлов и регулярных выражений для замены ваших строк.

Попробуйте мой способ:

Const ForReading = 1
Const ForWriting = 2

Set fso=Createobject("Scripting.FileSystemObject")
Set objRegEx = New RegExp

FolderName = "..\..\chrome\OPCEN\TABS"

Set objFolder = fso.GetFolder(FolderName)
Set objFileCol = objFolder.Files

For Each obFile In objFileCol

If Right(obFile,3)="css" Then 'Check all files extensions.
Set objFile = fso.OpenTextFile(obFile, ForReading)
strText = objFile.ReadAll
objFile.Close

objRegEx.Global = True   
objRegEx.IgnoreCase = False
objRegEx.Pattern = "\#[A-Z 0-9]{6}"

strNewText =  objRegEx.Replace(strText, "#F5F5F5")
Set WriteFile = fso.OpenTextFile(obFile, ForWriting)
WriteFile.WriteLine strNewText
WriteFile.Close
End if

Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...