You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中支持管道的类Unix/Linux tail命令替代方案

解决管道输出提取前/后X行的问题

直接用Select-Object -First <X>和Select-Object -Last <X>就能搞定,不用依赖Get-Content的-Tail参数,分两种场景处理:

场景1:前置命令输出是文本行(字符串数组)

如果前置命令直接输出字符串(比如Get-Content、Get-ChildItem -Name这类),直接接Select-Object就行:

# 取输出的最后10行
Get-Content .\log.txt | Select-Object -Last 10
# 取输出的前5行
Get-Content .\log.txt | Select-Object -First 5

场景2:前置命令输出是自定义对象

如果前置命令输出的是PowerShell对象(比如Get-Item、Get-Process这类返回的FileInfo/Process对象),需要先把对象转成和控制台输出一致的文本行,用Out-String -Stream做中转,再用Select-Object提取:

# 例子:把当前目录所有文件的信息转成文本后取最后10行
Get-Item .\* | Out-String -Stream | Select-Object -Last 10

# 例子:读取当前目录所有文件的内容,合并后取最后10行
Get-Item .\* | Get-Content | Out-String -Stream | Select-Object -Last 10

关键说明

  • Out-String -Stream的作用是把每个对象转换成单独的文本行(和你在控制台看到的输出格式一致),而不是把所有对象输出拼成一个大字符串,这样Select-Object才能按行处理。
  • Select-Object -Last <X>处理大输出时更高效,它只会在内存中保留最后X行,不会加载全部内容。

内容的提问来源于stack exchange,提问作者Cardgage

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 10:26:13