Replace VBS如何用新值替换任何颜色字符串(#*******)

Replace VBS如何用新值替换任何颜色字符串(#*******),replace,colors,vbscript,Replace,Colors,Vbscript,尝试用新的颜色值替换文件夹中的不同颜色值这是我的开始代码: Option Explicit Dim objFSO, strFolder, objFolder, objFile Dim strOldValue, strNewValue, objRead, strContents, objWrite Const ForReading = 1 Const ForWriting = 2 strFolder = "..\..\chrome\OPCEN\TABS" strOldValue

尝试用新的颜色值替换文件夹中的不同颜色值这是我的开始代码:

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"
更新:这是使用正则表达式的工作代码(但指向文件而不是整个文件夹)

使用循环来处理文件和替换字符串

试试我的方法:

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

我认为您可以使用正则表达式捕获字符串的开头或空格字符,并匹配hexedecimal值。在替换中,使用组1和新值。这是否回答了您的问题。使用
RegExp
对象替换基于RegEx模式的匹配值的示例。我用工作代码更新了问题,谢谢again@frankell所以你想扫描并替换文件夹中所有文件
*.css
中的所有字符串,或者任何具有任何扩展名的文件?我也想有机会,实际上文件夹中的所有文件都是.csse查看我的新更改
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