PowerShell实战:Get-Content命令使用详解
2023-12-18 22:14:31
目录
一、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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!