Vbscript 查找并替换文件中键/值对的值

Vbscript 查找并替换文件中键/值对的值,vbscript,Vbscript,我想在文本文件中搜索一个值并替换它,如下所示: 搜索值=查找: 将值1122替换为其他值3344,结果: value=3344 此外,替换整行的剩余内容也可以,这意味着value=之后的内容也将替换为3344 Set Arg = WScript.Arguments set WshShell = createObject("Wscript.Shell") Set Inp = WScript.Stdin Set Outp = Wscript.Stdout 'Remove ^ from quotin

我想在文本文件中搜索一个值并替换它,如下所示:

搜索值=查找:

将值1122替换为其他值3344,结果:

value=3344
此外,替换整行的剩余内容也可以,这意味着value=之后的内容也将替换为3344

Set Arg = WScript.Arguments
set WshShell = createObject("Wscript.Shell")
Set Inp = WScript.Stdin
Set Outp = Wscript.Stdout
'Remove ^ from quoting command line. Quote, ampersand and brackets
Pttn = Replace(Arg(2), "^(", "(")
Pttn = Replace(Pttn, "^)", ")")
Pttn = Replace(Pttn, "^&", "&")
Pttn = Replace(Pttn, "^""", """")
Set regEx1 = New RegExp
If Instr(LCase(Arg(1)), "i") > 0 then
    regEx1.IgnoreCase = True
Else
    regEx1.IgnoreCase = False
End If 
regEx1.Global = False
regEx1.Pattern = Pttn 
Do Until Inp.AtEndOfStream
    Line=Inp.readline
    Line = RegEx1.Replace(Line, Arg(3)) 
    outp.writeline Line
Loop
使用

cscript //nologo c:\folder\filter.vbs replace i "=" "No equal sign" < "%systemroot%\win.ini" > OutputFile.txt
使用正则表达式查找和替换文本

还用于从文件中提取子字符串

表达式中的符号和括号必须用插入符号转义。不要逃避爱抚。使用十六进制代码\x22作为引号

搜索选项

表情

替换

要替换的文本。使用$1、$2、$…、$n在替换字符串中指定子匹配项

范例

这将搜索方括号内的文本,并将该行替换为cat,后跟方括号内的文本

Filter replace i "^\[^(.*^)\]" "cat$1" < %windir%\win.ini
这将搜索任何文本并从第11个字符打印到行尾

Filter replace i "^.{10}^(.*^)$" "$1" < %windir%\win.ini
这将搜索CSV文件并打印第二个和第四个字段

Filter replace i "^.+,^(.+^),.+,^(.+^)$" "$1,$2" < csv.txt
i - ignore case
n - none
filter replace i "=" "No equal sign" < "%systemroot%\win.ini"
Filter replace i "^\[^(.*^)\]" "cat$1" < %windir%\win.ini
Filter replace i "^.{10}^(.*^)$" "$1" < %windir%\win.ini
Filter replace i "^.+,^(.+^),.+,^(.+^)$" "$1,$2" < csv.txt