- 版本 v1.1.15.01
- 指南和概述
- 常见问题(FAQ)
- 按字母排序的命令和函数索引
- AutoHotkey 脚本展示
- 变更和新功能
- 基本用法和语法
- 迁移到 AutoHotkey 1.1(AutoHotkey_L)
- 环境管理
- 本机代码互操作
- 文件、目录和磁盘管理
- Drive
- DriveGet
- DriveSpaceFree
- FileAppend
- FileCopy
- FileCopyDir
- FileCreateDir
- FileCreateShortcut
- FileDelete
- FileEncoding [AHK_L 42+]
- FileGetAttrib
- FileGetShortcut
- FileGetSize
- FileGetTime
- FileGetVersion
- FileInstall
- FileMove
- FileMoveDir
- FileOpen [AHK_L 42+]
- FileReadLine
- FileRead
- FileRecycle
- FileRecycleEmpty
- FileRemoveDir
- FileSelectFile
- FileSelectFolder
- FileSetAttrib
- FileSetTime
- IfExist / IfNotExist
- IniDelete
- IniRead
- IniWrite
- Loop(文件和文件夹)
- Loop(读取文件内容)
- SetWorkingDir
- SplitPath
- 流程控制
- 内置函数
- GUI、MsgBox、InputBox 及其他对话框
- 鼠标和键盘
- 鼠标和键盘
- #InstallKeybdHook
- #InstallMouseHook
- #KeyHistory
- BlockInput
- Click [v1.0.43+]
- ControlClick
- ControlSend / ControlSendRaw
- CoordMode
- GetKeyState
- KeyHistory
- KeyWait
- Input
- MouseClick
- MouseClickDrag
- MouseGetPos
- MouseMove
- Send / SendRaw / SendInput / SendPlay / SendEvent: 发送按键和点击
- SendLevel [v1.1.06+]
- SendMode [v1.0.43+]
- SetDefaultMouseSpeed
- SetKeyDelay
- SetMouseDelay
- SetCapsLockState/SetNumLockState/SetScrollLockState
- SetStoreCapslockMode
- 数学相关
- 屏幕管理
- 杂项命令
- 进程管理
- 注册表管理
- 声音命令
- 字符串管理
- 窗口管理
- 控件
- 窗口组
- #WinActivateForce
- DetectHiddenText
- DetectHiddenWindows
- SetTitleMatchMode
- SetWinDelay
- StatusBarGetText
- StatusBarWait
- WinActivate
- WinActivateBottom
- WinClose
- WinGet
- WinGetActiveStats
- WinGetActiveTitle
- WinGetClass
- WinGetPos
- WinGetText
- WinGetTitle
- WinHide
- WinKill
- WinMaximize
- WinMinimize
- WinMinimizeAll / WinMinimizeAllUndo
- WinMove
- WinRestore
- WinSet
- WinSetTitle
- WinShow
- WinWait
- WinWaitActive / WinWaitNotActive
- WinWaitClose
- #指令
FileReadLine
读取文件指定行的文本并保存到变量。
FileReadLine, OutputVar, Filename, LineNum
参数
- OutputVar
用来存储获取的文本的 变量 名.
- Filename
要访问的文件名, 如果未指定绝对路径则假定在 %A_WorkingDir% 中. 支持 Windows 和 Unix 格式; 即文件的行结束符可以是回车和换行符 (`r`n) 或只是换行符 (`n).
- LineNum
要读取的行号 (首行为 1, 第二行为 2, 依此类推). 可以为 表达式.
如果指定的行号大于文件的行数, 则 ErrorLevel 被设置为 1 且 OutputVar 不会发生变化. 当指定的行号为文件的最后一行且此行为空, 同时不是以新行/CRLF 结束时, 也会发生这种情况.
ErrorLevel
[v1.1.04+] 此命令失败时会抛出异常. 想了解更多信息, 请参阅 运行时错误.
成功时 ErrorLevel 被置为 0. 否则它被设置为 1 且 OutputVar 的原始内容不会发生变化.
A_LastError 被设置为操作系统 GetLastError() 函数返回的结果.
备注
强烈建议仅对于小文件或只需要单行文本的情况时使用此命令. 要扫描并处理大量的文本行 (一行接一行), 请使用 文件读取循环 来获取最好的性能. 要读取整个文件到变量中, 请使用 FileRead.
虽然一行中任何前导和尾随的 tab 和空格都会被写入 OutputVar, 但是行末的换行符 (`n) 则不会. 当 AutoTrim 设置打开 (默认的) 时, 任何变量都可以通过赋值给自己来移除变量两端的 tab 和空格. 例如:MyLine = %MyLine%
。
最大可以读取包含 65,534 字符的长行. 如果行的超度超过这个极限, 则此命令无法读取剩余的字符 (此时应使用 FileRead 或 文件读取循环 代替).
相关
FileOpen/File.ReadLine(), FileRead, FileAppend, 文件读取循环, IniRead
示例
Loop { FileReadLine, line, C:\My Documents\ContactList.txt, %A_Index% if ErrorLevel break MsgBox, 4, , Line "%line%". Continue? IfMsgBox, No return } MsgBox, The end of the file has been reached or there was a problem. return
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论