pyj521 发表于 2015-3-13 22:32:03

回复 45# afan


    afan太感谢你了,解决了困扰我很多天的难题,你回帖迅速,解决问题及时,令我感动啊!谢谢你!

afan 发表于 2015-3-13 22:33:45

回复 46# pyj521


    不客气哦

pyj521 发表于 2015-3-14 10:58:21

回复 45# afan


    afan大   我又来麻烦了,呵呵!昨晚测试发现,只能替换到根目录下的文件,多层目录下的文件无效。要想替换多层目录下的文件需要怎么修改下呢?谢谢!
#Include <File.au3>
$aFile = _FileListToArray('C:\www.baidu','*.xml',1)
If @Error Then Exit
For $i = 1 To $aFile
      _Re2File('C:\www.baidu'&'\' & $aFile[$i])
      Sleep(1)
Next


在这个目录下有很多层文件夹,文件下有各种*.xml

131738 发表于 2015-3-14 11:22:04

回复 48# pyj521


试试改用   _FileListToArrayRec(), 参考帮助设置参数

zldfsz 发表于 2015-3-14 13:19:09

回复 48# pyj521


    11年的老帖子了 ,这是来挖坟来着

FindAllFile(@ScriptDir)
Func _Re2File($File)
      Local $FileNew = $File
      Local $str = FileRead($File)
      $str = StringReplace($str, '<item id="From"><!http://www.baidu.com/)]]></item>', _
                        '<item id="From"><!http://www.360.com/)]]></item>')
      $str = StringReplace($str, '<item id="copyright"><!www.baidu.com]]></item>', _
                        '<item id="copyright"><!www.360.com]]></item>')
      Local $hFO = FileOpen($FileNew, 2)
      FileWrite($hFO, $str)
      FileClose($hFO)
EndFunc   ;==>_Re2File
Func FindAllFile($sDir)
        Local $hSearch = FileFindFirstFile($sDir & "\*.*")
        ; 检查搜索是否成功
        If $hSearch = -1 Then Return
        While 1
                Local $sFile = FileFindNextFile($hSearch)
                If @error Then ExitLoop
                If @extended Then
                        FindAllFile($sDir & "\" & $sFile)
                        ContinueLoop
                EndIf
                If StringRegExp($sFile, ".*\.xml", 0) Then
                       _Re2File($sDir & "\" & $sFile)
                EndIf
        WEnd
        FileClose($hSearch); 关闭搜索句柄
EndFunc   ;==>FindAllFile

pyj521 发表于 2015-3-14 14:00:22

回复 50# zldfsz


    非常完美!非常感谢!搜索到这里来了,就随便搭了个顺风车,我可不是盗墓的,呵呵!

pyj521 发表于 2015-3-14 14:00:47

回复 49# 131738


    谢谢!我试过,没成功!
页: 1 2 3 [4]
查看完整版本: (已解决) 如何只替换指定的字符串?谢谢!!!