找回密码
 加入
搜索
查看: 5154|回复: 10

[AU3基础] (已解决)请问如何查找最新文件,然后在文本顶部插入一行,再重命名另存?

  [复制链接]
发表于 2015-8-6 23:59:09 | 显示全部楼层 |阅读模式
本帖最后由 jmm000 于 2015-8-17 11:09 编辑

比如“c:\abc\”文件夹下有如下文本,现在想自动修改当天的文本,在"DHCP_macaddress_20150806.txt"顶部插入一行bbbbbb,然后重命名另存为c.txt,如已有c.txt,则覆盖。
文本尾部添加可以用FileWrite,在顶部添加用什么?
关于名称不定的重命名,filemove怎么用?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2015-8-7 00:07:13 | 显示全部楼层
先感谢之前版主haijie1223的回复http://www.autoitx.com/forum.php?mod=viewthread&tid=49187&highlight=
根据文件名判断最新文件,然后发现要修改文本和重命名我还是不会。。。。
发表于 2015-8-7 01:13:06 | 显示全部楼层
可以使用FileFindFirstFile和FileFindNextFile 配合遍历某文件夹(帮助文档里面有例子),然后判断文件名是否为“DHCP_macaddress_”开头,也可同时FileGetTime判断文件修改时间,如果符合条件,则可能往文件里面写数据,然后改名。 往文件尾写数据很简单,往文件头写数据就需要把整个文件读到数组或变量,在前面添加数据,然后再写回去,如:
$filename = "d:\test.txt"
$lines = "新数据第一行" & @CRLF & FileRead($filename,FileGetSize($filename))

$file = FileOpen($filename,2)
FileWrite($file,$lines)
FileClose($file)
当然这里你可以直接把数据写到新文件,然后删除旧文件,也可以写到旧文件,然后改名。

评分

参与人数 1金钱 +10 收起 理由
jmm000 + 10 谢谢帮忙

查看全部评分

 楼主| 发表于 2015-8-7 08:43:48 | 显示全部楼层
先谢谢,我试着写下。
发表于 2015-8-7 08:49:59 | 显示全部楼层
;~ Dim $filename = "DHCP_macaddress_" & @YEAR & @MON & @MDAY & ".txt"
;~ If Not FileExists("d:\world") Then DirCreate("d:\world")
;~ If FileExists("c:\abc" & $filename) Then FileCopy("c:\abc" & $filename, "d:\world" & $filename)

Dim $FileName = "c:\abc\DHCP_macaddress_" & @YEAR & @MON & @MDAY & ".txt"
Dim $Nfile = "c:\abc\c.txt"
Dim $hFile = FileOpen($FileName)
Dim $sContent = FileRead($hFile)
FileClose($hFile)
$hFile = FileOpen($Nfile, 2 + 8)
FileWrite($hFile, "bbbbbb" & @CRLF & $sContent)
FileClose($hFile)

评分

参与人数 1金钱 +50 收起 理由
jmm000 + 50 谢谢帮忙。不是版本问题,在win7上测试没有 ...

查看全部评分

 楼主| 发表于 2015-8-7 12:07:14 | 显示全部楼层
本帖最后由 jmm000 于 2015-8-8 19:43 编辑

额,谢谢楼上版主!楼上版主的代码在win7上运行没有问题。在server 2008 r2上,发现生成的文本只有新插入的一行代码,没有原来的内容。我在两台服务器上测试了都这样。为什么?难道是bug???
发表于 2015-8-8 23:28:15 | 显示全部楼层
回复 6# jmm000


    读取文件内容这么简单的事情,自己慢慢分析一下就找到原因了。
发表于 2015-8-10 10:37:42 | 显示全部楼层
使用 FileSetPos() 将同一文件的同时读写成为可能. 当您在同时读写同一文件时, 请在每次读写操作后调用 FileFlush() 将缓冲器数据写入磁盘.
 楼主| 发表于 2015-8-17 11:08:50 | 显示全部楼层
楼上正解。添加FileFlush()即可。谢谢!
 楼主| 发表于 2015-8-17 11:09:30 | 显示全部楼层
楼上正解。添加FileFlush()即可。谢谢!
发表于 2015-8-17 11:59:59 | 显示全部楼层
不错学习学习
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-28 20:17 , Processed in 0.111299 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表