PowerShell实战:Get-Content命令使用详解

简介: 【2月更文挑战第12篇】 Get-Content 主要作用是获取路径指定位置的项(文本类文件)的内容,例如文件中的文本或函数的内容。 对于文件,内容一次读取一行,并返回对象的集合,每个对象表示一行内容。

image.png


一、Get-Content介绍

Get-Content 主要作用是获取路径指定位置的项(文本类文件)的内容,例如文件中的文本或函数的内容。 对于文件,内容一次读取一行,并返回对象的集合,每个对象表示一行内容。

支持的格式主要包括:

文本:txt 等

脚本文件:bat、psl、vbs、sh等

后端文件:java、cs、cpp等

前端文件:html、css、js、vue、ts 等

配置文件:yml、xml、config 等

说明:

PowerShell 3.0以后的版本开始支持从项的开头或末尾获取指定数量的行。

对于包含中文字符串的话建议指定编码格式为utf8编码避免出现乱码的情况:-encoding utf8

二、语法格式

Get-Content

  [-ReadCount <Int64>]

  [-TotalCount <Int64>]

  [-Tail <Int32>]

  [-Path] <String[]>

  [-Filter <String>]

  [-Include <String[]>]

  [-Exclude <String[]>]

  [-Force]

  [-Credential <PSCredential>]

  [-Delimiter <String>]

  [-Wait]

  [-Raw]

  [-Encoding <Encoding>]

  [-AsByteStream]

  [-Stream <String>]

  [<CommonParameters>]

 

 

三、参数详解

               -ReadCount:设置每次通过管道发送的内容行数。默认值为 1。 当值为0时一次发送所有文件内容。它的作用时影响显示内容所需要的时间,值越大第一行显示时间会变长,但合计的时间会减少,主要是针对哪些比较大的文件来说的。一般运维使用较少。

               -TotalCount:设置文件读取的行数(从文件头开始)也可以使用 head、first 等价替代,参数值为负数会读取整个文件内容。

               -Tail:设置文件读取的行数(从文件尾部开始),等价于last,参数值为负数会读取整个文件内容。排查日志的话使用比较频繁。

               -Path:设置获取文件的路径,可以使用通配符,因此Get-Content 可以一次性读取多个文件或者多个目录的内容。

               -Filter:用来设置限定 Path 参数的筛选条件。

               -Include:包含一个或多个项作为字符串数组,同样是作为Path筛选条件使用

               -Exclude:排除一个或多个项作为字符串数组,同样是作为Path筛选条件使用

               -Force:可以替代只读属性或创建目录以完成文件路径(可以针对操作系统隐藏文件使用)。一般使用不多。

               -Credential:用户凭据相关,很少使用。

               -Delimiter:设置在读取文件时将文件划分为对象的分隔符,默认是\n。 可以使用此参数将大文件拆分为较小的文件,分隔符不被丢弃。

               -wait:设置输出所有现有行后,使文件保持打开状态。 处于等待状态, Get-Content 每秒检查一次文件,并输出新行(如果存在)。比较常见的是tomcat日志文件,可以采用这种方式监控日志的变化,排查问题。

               -Raw:设置忽略换行符,使得文件一行展示(会保留换行符)。

               -Encoding:设置获取文件内容的编码格式。 默认值为 utf8NoBOM,推荐使用utf8避免出现乱码。支持的格式有(ascii、ansi、bigendianunicode、unicode、utf8等等)

               -AsByteStream:设置文件内容应作为字节流进行读取,是6.0版本之后新增的功能参数。目前微软官方的例子运行也有异常。

               -Stream:从文件中获取指定的备用 NTFS 文件流的内容。 输入流名称。不支持通配符。仅限Windows操作系统使用。

四、使用案例

4.1 获取文件内容

get-content .\demo.txt -encoding utf8

image.png

4.2 获取文件前三行内容

PS E:\test> get-content .\demo.txt -totalcount 3  -encoding utf8
1111
2222
3333
PS E:\test> get-content .\demo.txt -head 3  -encoding utf8
1111
2222
3333
PS E:\test> get-content .\demo.txt -first 3  -encoding utf8
1111
2222
3333
PS E:\test>

image.png

4.3 获取文件最后三行内容

PS E:\test> get-content .\demo.txt -tail 3  -encoding utf8

image.png

4.4通过管道方式获取最后两行内容

image.png

注意:该方式获取速度更快,对于大文件检索非常有用。

4.5使用逗号作为分隔符

PS E:\test> get-content tt1.txt -Delimiter ","  -encoding utf8
1111,
2222,
33333
PS E:\test> get-content tt1.txt   -encoding utf8
1111,2222,33333

image.png

4.6 Filter方式读取多个文件

获取指定目录下所有txt后缀的文件内容

get-content -path E:\test\*  -filter "*.txt"  -encoding utf8

image.png

4.7 Include方式读取多个文件

使用Include获取指定目录下所有txt后缀的文件内容

get-content -path E:\test\*  -include "*.txt"  -encoding utf8

image.png

相关文章
|
1月前
|
运维 数据库
Powershell实战:测试网络请求两个命令介绍
【2月更文挑战第11篇】 Test-Connection 命令将 Internet 控制消息协议 (ICMP) 回显请求数据包或 ping 发送给一台或多台远程计算机并返回回显响应回复。 我们可以使用该命令确定是否可通过 IP 网络ping通特定的计算机。
PowerShell实战:Get-Item命令使用详解
【2月更文挑战第10篇】Get-Item 命令使用频率非常高,主要是获取位于指定位置的项。 一般搭配使用通配符 (*) 来获取项目的包含的项目。如果不使用*的话只是获取当前项的内容。
PowerShell实战:文件操作相关命令笔记
【2月更文挑战第9篇】cmdlet New-Item 将创建新项并设置其值。 可创建的项类型取决于项的位置。 例如,在文件系统 New-Item 中创建文件和文件夹。 在注册表中, New-Item 创建注册表项和条目。
|
4月前
|
前端开发 微服务 Windows
PowerShell 命令窗口执行 pnpm 命令报错 无法加载文件 pnpm.ps1,因为在此系统上禁止运行脚本
PowerShell 命令窗口执行 pnpm 命令报错 无法加载文件 pnpm.ps1,因为在此系统上禁止运行脚本
|
5月前
|
Shell Linux 开发工具
windows中cmd和PowerShell批处理命令
之前在 Git 批量删除本地分支,有用到 Linux 或 MacOS 下的批处理命令,这个命令中的 grep、xargs 本身是 Shell script,在 windows 中的 cmd 和 PowerShell 中是不能用的
51 0
|
7月前
|
SQL 数据库
PowerShell 脚本必备命令
PowerShell 脚本必备命令
|
8月前
|
JavaScript Windows
[Vue]解决 Windows PowerShell 不识别 vue 命令的问题
[Vue]解决 Windows PowerShell 不识别 vue 命令的问题
|
10月前
PowerShell的一些命令
PowerShell的一些命令 自用
56 0
|
搜索推荐 Shell
Win10小技巧:将在此处打开命令改为CMD或Powershell
微软的 CMD 也就是命令提示符已经伴随了我们很多年了,这些年来 CMD 已经勤勤恳恳地默默工作着,虽然没有图形化的界面,但是其干净整洁的操作环境仍然受到了大家的欢迎。
426 0
Win10小技巧:将在此处打开命令改为CMD或Powershell