您可以使用以下代码:
$filename = "filename.txt"
Run("notepad.exe " & $filename)
WinWaitActive($filename & " - Notepad")
$lines= StringRegExp(FileRead($filename), @CR, 3)
$count = UBound($lines)
For $i = 0 To $count
Send("+{END}")
Send("^C")
Sleep (1000)
Send("{END}")
Sleep (1000)
Send(" ")
Send("^V")
Send("{HOME}")
Send("{DOWN}")
Next
您必须等待标题中包含文件名的窗口。如果文件名内部有空格,则需要在 notepad.exe 后面的参数两边加上引号。
不知何故,您需要获取行号的计数。我只是用 AutoIt 阅读了整个文件并搜索“回车”。结果数组具有行号的大小。然后在 For-...-To-...-Loop 中使用该数字。
您可以将睡眠时间减少到 100 毫秒。而且使用 FileReadLine 和可能的 FileWriteLine 来完成您的任务会容易得多,因为 FileReadLine 可以一直使用到文件末尾。它将@error 设置为-1。有关更多信息,请参阅文档。