替换文本文件的字符串(二进制文件将无法正常工作!)
#Include <File.au3>
_ReplaceStringInFile($szFileName, $szSearchString, $szReplaceString [, $fCaseness = 0 [, $fOccurance = 1]])
$szFileName | 打开文件的文件名. 注意!! 需要完整路径, 不仅仅是由 FileFindNextFile 函数返回的文件名 |
$szSearchString | 文件中要替换的字符串 |
$szReplaceString | 用来替换 $szSearchString 字符串的新字符串 |
$fCaseness | [可选参数] 0 = 不区分大小写(默认),1 = 区分大小写 |
$fOccurance | [可选参数] 0 = 只有替换首次被发现的,1 = 所有匹配都替换(默认) |
成功: | 返回找到 $szSearchString 的数量 | |
失败: | 返回 -1,设置@error: | |
@error: | 1 - 无法打开文件 | |
2 - 无法打开临时文件 | ||
3 - 无法写入临时文件 | ||
4 - 不能删除原始文件 | ||
5 - 不能重命名/移动临时文件 | ||
6 - 原文件为只读属性设置. |
#include <File.au3>
Local $find = "BEFORE"
Local $replace = "AFTER"
Local $filename = "C:\_ReplaceStringInFile.test"
Local $msg = "Hello Test " & $find & " Hello Test" & @CRLF
$msg &= "Hello Test" & @CRLF
$msg &= @CRLF
$msg &= $find
FileWrite($filename, $msg)
MsgBox(4096, "BEFORE", $msg)
Local $retval = _ReplaceStringInFile($filename, $find, $replace)
If $retval = -1 Then
MsgBox(4096, "错误", "The pattern could not be replaced in file: " & $filename & " Error: " & @error)
Exit
Else
MsgBox(4096, "INFO", "Found " & $retval & " occurances of the pattern: " & $find & " in the file: " & $filename)
EndIf
$msg = FileRead($filename, 1000)
MsgBox(4096, "AFTER", $msg)
FileDelete($filename)