返回列表 发帖

[文本处理] 求助BAT脚本批量替换指定扩展名内的字符串

目录内有很多html文件, 1.html, 2.html.....
需要替换目录内所有html扩展名文件内的指定文本路径 C:\A.jpg 为 D:\B.PNG

在论坛内找了很多帖子, 没有找到解决办法, 还请各位大佬帮帮忙


找到了一个, 但不知道为什么运行有错误, 无法完成需求.
  1. @echo off
  2. for /f "delims=" %%i in ('dir /s/b *.txt') do (
  3.         for /f "delims=" %%a in ('type "%%~fi"') do (
  4.                 set "foo=%%a"
  5.                 call,set foo=%%foo:替换前内容=替换后内容%%
  6.                 call,echo/%%foo%%>>"%%~fi._"
  7. )
  8. move "%%~fi._" "%%~fi"
  9. )
  10. exit
复制代码

找个一个VBS可以完成我的需求, 贴上代码
  1. Set WshShell = CreateObject("Wscript.Shell")
  2. WshShell.Run "cmd /c dir /s/b *.HTM > list.txt",vbHide
  3. Wscript.Sleep 1000
  4. sFile = "list.txt"
  5. Set objFSO = CreateObject("Scripting.FileSystemObject")
  6. Set oFile = objFSO.OpenTextFile(sFile,1)
  7. Do While Not oFile.AtEndOfStream
  8.       strLine = oFile.ReadLine
  9.       If Len(strLine) > 0 Then
  10.             Set File = objFSO.OpenTextFile(strLine, 1)
  11.             aryLines = File.ReadAll
  12.             File.Close
  13.             aryLines = Replace(aryLines, "c:\A.jpg", "d:\B.png")
  14.             Set File = objFSO.OpenTextFile(strLine, 2)
  15.             File.Write aryLines
  16.             File.Close
  17.       End If
  18. Loop
  19. oFile.Close
  20. objFSO.DeleteFile sFile
  21. Set objFSO = Nothing
复制代码

TOP

回复 3# aloha20200628


    谢谢! 但我希望不使用额外的程序处理文本.

TOP

感谢各位大神的帮助!
放弃了, 批处理相较于vbs来讲还是太慢太慢, vbs瞬间解决的问题批处理需要好久

TOP

回复 8# Batcher


    感谢解惑!

TOP

回复 9# aloha20200628


    感谢您的帮助, 祝好运!

TOP

返回列表