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

2023-12-18 22:14:31

目录

一、Get-Content介绍

二、语法格式

三、参数详解

四、使用案例

4.1?获取文件内容

4.2?获取文件前三行内容

4.3?获取文件最后三行内容

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

4.5使用逗号作为分隔符

4.6?Filter方式读取多个文件

4.7?Include方式读取多个文件


一、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

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>

4.3?获取文件最后三行内容

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

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

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

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

4.6?Filter方式读取多个文件

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

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

4.7?Include方式读取多个文件

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

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

文章来源:https://blog.csdn.net/xishining/article/details/135071657
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。