- 查看日志内容:直接读取并显示日志文件中的信息。
- 系统事件查看:查看和管理 Windows 系统本身生成的事件日志(如应用程序、安全、系统日志等)。
下面我将分这两大部分进行介绍,并提供实用的示例。

第一部分:查看和管理文本日志文件
这部分命令适用于任何纯文本格式的日志文件(.log, .txt 文件)。
type - 显示文件内容
这是最简单、最直接的命令,用于在控制台中显示整个文件的内容。
语法:
type [驱动器:][路径]文件名
示例:
假设你有一个名为 app.log 的日志文件,位于 C:\logs 目录下。

# 显示 C:\logs\app.log 文件的全部内容 type C:\logs\app.log
优点:
- 简单直接,无需任何参数。
- 是所有 Windows 系统都内置的命令。
缺点:
- 如果日志文件很大,内容会飞速滚过屏幕,你只能看到最后的内容。
- 无法进行搜索或过滤。
more - 分页显示内容
当 type 显示的内容太多时,more 命令可以将其分页显示,让你一屏一屏地阅读。
语法:

type [文件名] | more
这里的 是“管道”符号,它将 type 命令的输出作为 more 命令的输入。
示例:
# 分页显示 C:\logs\app.log 的内容 type C:\logs\app.log | more
操作方法:
- 按空格键:显示下一页。
- 按回车键:显示下一行。
- 按
Q键:退出more命令,返回到命令提示符。
find - 查找特定字符串
find 命令用于在文件中查找包含指定字符串的行。
语法:
find [/i] [/c] [/n] "字符串" [驱动器:][路径]文件名
常用参数:
/i:忽略大小写。(非常常用)/c:仅显示包含字符串的行数,而不是显示具体的行。/n:显示行号。
示例:
假设你想在 app.log 中查找所有包含 "ERROR" 的日志。
# 查找包含 "ERROR" 的行,并显示行号 find /n "ERROR" C:\logs\app.log # 忽略大小写查找 "error" find /i "error" C:\logs\app.log # 统计 "ERROR" 出现了多少次 find /c "ERROR" C:\logs\app.log
findstr - 更强大的查找
findstr 是 find 的增强版,支持正则表达式,功能更强大。
语法:
findstr [/i] [/c:"字符串"] [/n] [/r] "搜索字符串" [文件名...]
常用参数:
/i:忽略大小写。/c:"字符串":将"字符串"视为要查找的文本(而不是文件名),当要查找的字符串中包含空格时,必须使用此参数。/n:显示行号。/r:使用正则表达式。
示例:
# 查找包含 "ERROR" 或 "Warning" 的行(使用正则表达式) findstr /i /n "ERROR|Warning" C:\logs\app.log # 查找包含 "Failed to connect" 的行 findstr /i /c:"Failed to connect" C:\logs\app.log
findstr 的正则表达式元字符:
- :任意单个字符
- :零次或多次重复前一个字符
^:行的开始- :行的结束
[class]:字符类,[0-9]表示任意数字[^class]:非字符类,[^a-z]表示非小写字母[x-y]:范围,[A-Z]表示任意大写字母\x:转义元字符,\.表示查找点号
grep - (需安装) Linux 风格的查找
很多开发者习惯使用 Linux/Unix 中的 grep 命令,Windows 自身不包含,但你可以通过以下方式获得:
- 安装 Git for Windows:安装后,其
bin目录下的grep.exe就可以在 CMD 中使用。 - 安装 Windows Subsystem for Linux (WSL):在 WSL 中可以直接使用
grep。
grep 的用法和 findstr 非常相似,但语法更符合 Linux 习惯。
示例:
# 使用 Git 安装的 grep grep -i "error" C:\logs\app.log grep -n "error\|warning" C:\logs\app.log
第二部分:查看和管理 Windows 事件日志
Windows 系统本身的事件日志(如应用程序、安全、系统日志)不是普通的文本文件,需要使用专门的命令行工具来查看。
wevtutil - 功能强大的事件查看器命令行工具
这是查看 Windows 事件日志最推荐的命令行工具,功能全面。
常用语法:
# 查询事件 wevtutil qe [日志名称] /q:查询XML /c:数量 /rd:反向 /f:文本格式 # 列出所有日志 wevtutil el # 导出日志到文件 wevtutil epl [日志名称] [输出文件路径]
日志名称:
Application:应用程序日志Security:安全日志System:系统日志Setup:安装程序日志
示例:
# 列出所有可用的日志 wevtutil el # 查询最近10条系统日志,并以文本格式显示 wevtutil qe System /c:10 /f:text # 查询所有来源为 "Disk" 的应用程序错误事件 wevtutil qe Application /q:"*[System[(EventID=1001)] and *[System[Provider[@Name='Disk']]]]" /f:text # 将安全日志导出到 C:\logs\security.evtx 文件 wevtutil epl Security C:\logs\security.evtx
查询XML语法: /q: 后面跟的是 XPath 查询语句,语法比较复杂,但非常精确。
*[System[EventID=1001]]:事件ID为1001的所有事件。*[System[Level=2]]:级别为2(通常是错误)的所有事件。*[System[TimeCreated[@SystemTime>'2025-10-26T00:00:00']]]:某个时间点之后创建的事件。
eventcreate - 创建自定义事件日志
这个命令允许你以管理员身份,向本地或远程计算机的事件日志中添加一条自定义记录,这对于脚本调试和记录非常有用。
语法:
eventcreate /ID [事件ID] /L [日志名称] /T [类型] /SO [来源] /D "描述"
参数:
/ID:事件ID(1-1000)。/L:日志名称(APPLICATION,SECURITY,SYSTEM)。/T:事件类型(ERROR,WARNING,INFO)。/SO:事件的来源(你的脚本名或应用程序名)。/D:事件的详细描述。
示例: (需要以管理员身份运行 CMD)
# 在应用程序日志中创建一条来源为 "MyScript" 的信息记录 eventcreate /ID 777 /L APPLICATION /T INFO /SO MyScript /D "This is a test message from my script." # 在系统日志中创建一条警告记录 eventcreate /ID 100 /L SYSTEM /T WARNING /SO "MyCustomApp" /D "A non-critical issue has occurred."
第三部分:使用 PowerShell (更现代的选择)
对于现代 Windows 系统,PowerShell 是比 CMD 更强大、更灵活的工具,尤其是在处理日志方面。
Get-Content (别名 cat, gc) - 读取文件
类似于 type,但功能更强大。
# 实时监控日志文件的变化(类似 tail -f) Get-Content C:\logs\app.log -Wait -Tail 10
Select-String (别名 sls) - 查找字符串
类似于 findstr,但使用的是 PowerShell 的管道和对象,更易于与其他命令结合。
# 查找包含 "ERROR" 的行,并只显示行号和内容 Select-String -Path "C:\logs\app.log" -Pattern "ERROR" -SimpleMatch | Format-List LineNumber, Line # 忽略大小写查找 Select-String -Path "C:\logs\app.log" -Pattern "error" -CaseSensitive:$false
Get-WinEvent - 查看 Windows 事件日志
这是 PowerShell 中查看事件日志的核心命令,比 wevtutil 更易于在脚本中使用。
# 获取最近100条系统日志 Get-WinEvent -LogName System -MaxEvents 100 # 筛选特定ID的事件 Get-WinEvent -LogName Application -FilterXPath "*[System[EventID=1001]]" # 将日志导出到CSV文件 Get-WinEvent -LogName Security | Export-Csv -Path "C:\logs\security.csv" -NoTypeInformation
总结与建议
| 场景 | 推荐命令 | 优点 |
|---|---|---|
| 快速查看小日志文件 | type filename.log |
最简单,无需记忆参数 |
| 分页查看大日志文件 | type filename.log \| more |
刷屏 |
| 在日志中查找关键词 | findstr /i "keyword" filename.log |
功能强大,支持正则 |
| 监控日志文件实时变化 | Get-Content filename.log -Wait |
(PowerShell) 实时跟踪,非常实用 |
| 查看 Windows 系统事件 | wevtutil qe System /c:10 |
(CMD) 功能全面,无需额外工具 |
| 脚本化处理系统事件 | Get-WinEvent -LogName System |
(PowerShell) 输出为对象,易于处理 |
| 在脚本中记录日志 | eventcreate ... |
(CMD) 可向系统日志写入记录 |
给你的建议:
- 日常快速查看:优先使用
type和findstr,它们是 CMD 的内置利器。 - 需要实时监控:强烈推荐使用 PowerShell 的
Get-Content -Wait。 - 系统故障排查:
wevtutil和Get-WinEvent是你的主力军,Get-WinEvent在自动化和脚本化方面更具优势。 - 从 CMD 迁移:如果你熟悉 Linux/Unix,安装 Git for Windows 使用
grep会让你感觉更亲切,长远来看,学习 PowerShell 对 Windows 系统管理大有裨益。
