使用VBScript查找并替换我的文本中的字符串

Tza*_*ahi 6 vbscript

我正在搜索在文件中进行搜索和替换的VBScript(例如1.txt 2.xml).我有文件"1.txt"里面有"临时"这个词,我想把它改成"永久".因为我得到了很多这个文件,所以我需要一个脚本.

每次我尝试编写包含打开txt文件和命令替换的脚本时,它都不会.

我找到了一个脚本,用另一个文件更改了这个文件并在里面进行了更改,但这不是我想要的.

Tes*_*101 6

试试这个

If WScript.Arguments.Count <> 3 then
  WScript.Echo "usage: Find_And_replace.vbs filename word_to_find replace_with "
  WScript.Quit
end If

FindAndReplace WScript.Arguments.Item(0), WScript.Arguments.Item(1), WScript.Arguments.Item(2)
WScript.Echo "Operation Complete"

function FindAndReplace(strFilename, strFind, strReplace)
    Set inputFile = CreateObject("Scripting.FileSystemObject").OpenTextFile(strFilename, 1)
    strInputFile = inputFile.ReadAll
    inputFile.Close
    Set inputFile = Nothing
    Set outputFile = CreateObject("Scripting.FileSystemObject").OpenTextFile(strFilename,2,true)
    outputFile.Write Replace(strInputFile, strFind, strReplace)
    outputFile.Close
    Set outputFile = Nothing
end function 
Run Code Online (Sandbox Code Playgroud)

将其保存在名为Find_And_Replace.vbs的文件中,然后可以在命令行中使用它.

[C:\]> Find_And_Replace.vbs "C:\1.txt" "temporary" "permanent"
Run Code Online (Sandbox Code Playgroud)

*此方法区分大小写"This"!="this"

如果您不想将整个文件读入内存,可以使用这样的临时文件.

If WScript.Arguments.Count <> 3 then
  WScript.Echo "usage: Find_And_replace.vbs filename word_to_find replace_with "
  WScript.Quit
end If

FindAndReplace WScript.Arguments.Item(0), WScript.Arguments.Item(1), WScript.Arguments.Item(2)
WScript.Echo "Operation Complete"

function FindAndReplace(strFile, strFind, strReplace)
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objInputFile = objFSO.OpenTextFile(strFile,1)
    strTempDir = objFSO.GetSpecialFolder(2)
    Set objTempFile = objFSO.OpenTextFile(strTempDir & "\temp.txt",2,true)
    do until objInputFile.AtEndOfStream
        objTempFile.WriteLine(Replace(objInputFile.ReadLine, strFind, strReplace))
    loop
    objInputFile.Close
    Set objInputFile = Nothing
    objTempFile.Close
    Set objTempFile = Nothing
    objFSO.DeleteFile strFile, true
    objFSO.MoveFile strTempDir & "\temp.txt", strFile
    Set objFSO = Nothing
end function 
Run Code Online (Sandbox Code Playgroud)