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
谢谢!我试过,没成功!