[玩转系统] Get-Content (Microsoft.PowerShell.Management)
作者:精品下载站 日期:2024-12-14 02:12:33 浏览:16 分类:玩电脑
Get-Content (Microsoft.PowerShell.Management)
Get-Content
模块 :Microsoft.PowerShell.Management获取指定位置的项目内容。
句法
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>]
Get-Content
[-ReadCount <Int64>]
[-TotalCount <Int64>]
[-Tail <Int32>]
-LiteralPath <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Force]
[-Credential <PSCredential>]
[-Delimiter <String>]
[-Wait]
[-Raw]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <String>]
[<CommonParameters>]
描述
Get-Content
cmdlet 获取路径指定位置处的项目内容,例如文件中的文本或函数的内容。对于文件,一次读取一行内容并返回对象集合,每个对象代表一行内容。
从 PowerShell 3.0 开始,Get-Content
还可以从项目的开头或结尾获取指定的行数。
示例
示例1:获取文本文件的内容
此示例获取当前目录中文件的内容。 LineNumbers.txt
文件有 100 行,格式为 This is Line X,并在多个示例中使用。
1..100 | ForEach-Object { Add-Content -Path .\LineNumbers.txt -Value "This is line $_." }
Get-Content -Path .\LineNumbers.txt
This is Line 1
This is Line 2
...
This is line 99.
This is line 100.
数组值 1-100 沿着管道发送到 ForEach-Object
cmdlet。 ForEach-Object
使用带有 Add-Content
cmdlet 的脚本块来创建 LineNumbers.txt
文件。变量 $_
表示每个对象沿着管道发送时的数组值。 Get-Content
cmdlet 使用 Path 参数指定 LineNumbers.txt
文件并在 PowerShell 控制台中显示内容。
示例 2:限制 Get-Content 返回的行数
此命令获取文件的前五行。 TotalCount 参数获取前五行内容。此示例使用示例 1 中引用的 LineNumbers.txt
。
Get-Content -Path .\LineNumbers.txt -TotalCount 5
This is Line 1
This is Line 2
This is Line 3
This is Line 4
This is Line 5
示例 3:从文本文件中获取特定行内容
此命令从文件中获取特定行数,然后仅显示该内容的最后一行。 TotalCount 参数获取前 25 行内容。此示例使用示例 1 中引用的 LineNumbers.txt
文件。
(Get-Content -Path .\LineNumbers.txt -TotalCount 25)[-1]
This is Line 25
Get-Content
命令用括号括起来,以便命令在进入下一步之前完成。 Get-Content
返回行数组,这允许您在括号后添加索引符号以检索特定行号。在本例中,[-1]
索引指定返回的 25 个检索行数组中的最后一个索引。
示例 4:获取文本文件的最后一行
此命令从文件中获取最后一行内容。此示例使用示例 1 中创建的 LineNumbers.txt
文件。
Get-Item -Path .\LineNumbers.txt | Get-Content -Tail 1
This is Line 100
此示例使用 Get-Item
cmdlet 演示您可以通过管道将文件传输到 Get-Content
。 Tail 参数获取文件的最后一行。此方法比检索变量中的所有行并使用 [-1]
索引表示法更快。
示例 5:获取备用数据流的内容
此示例介绍如何使用 Stream 参数获取存储在 Windows NTFS 卷上的文件的备用数据流的内容。在此示例中,Set-Content
cmdlet 用于在名为 Stream.txt
的文件中创建示例内容。
Set-Content -Path .\Stream.txt -Value 'This is the content of the Stream.txt file'
# Specify a wildcard to the Stream parameter to display all streams of the recently created file.
Get-Item -Path .\Stream.txt -Stream *
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Test\Stream.txt::$DATA
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Test
PSChildName : Stream.txt::$DATA
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName : C:\Test\Stream.txt
Stream : :$DATA
Length : 44
# Retrieve the content of the primary stream.
# Note the single quotes to prevent variable substitution.
Get-Content -Path .\Stream.txt -Stream ':$DATA'
This is the content of the Stream.txt file
# Alternative way to get the same content.
Get-Content -Path .\Stream.txt -Stream ""
# The primary stream doesn't need to be specified to get the primary stream of the file.
# This gets the same data as the prior two examples.
Get-Content -Path .\Stream.txt
This is the content of the Stream.txt file
# Use the Stream parameter of Add-Content to create a new Stream containing sample content.
$addContentSplat = @{
Path = '.\Stream.txt'
Stream = 'NewStream'
Value = 'Added a stream named NewStream to Stream.txt'
}
Add-Content @addContentSplat
# Use Get-Item to verify the stream was created.
Get-Item -Path .\Stream.txt -Stream *
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Test\Stream.txt::$DATA
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Test
PSChildName : Stream.txt::$DATA
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName : C:\Test\Stream.txt
Stream : :$DATA
Length : 44
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Test\Stream.txt:NewStream
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Test
PSChildName : Stream.txt:NewStream
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName : C:\Test\Stream.txt
Stream : NewStream
Length : 46
# Retrieve the content of your newly created Stream.
Get-Content -Path .\Stream.txt -Stream NewStream
Added a stream named NewStream to Stream.txt
Stream 参数是文件系统提供程序的动态参数。默认情况下,Get-Content
仅从默认流或 :$DATA
流中检索数据。 流可用于存储隐藏数据,例如属性、安全设置或其他数据。它们也可以存储在目录中而不是子项。
示例 6:获取原始内容
此示例中的命令将文件的内容作为一个字符串而不是字符串数组获取。默认情况下,如果没有 Raw 动态参数,内容将以换行符分隔字符串数组的形式返回。此示例使用示例 1 中引用的 LineNumbers.txt
文件。
$raw = Get-Content -Path .\LineNumbers.txt -Raw
$lines = Get-Content -Path .\LineNumbers.txt
Write-Host "Raw contains $($raw.Count) lines."
Write-Host "Lines contains $($lines.Count) lines."
Raw contains 1 lines.
Lines contains 100 lines.
示例 7:将过滤器与 Get-Content 一起使用
您可以为 Get-Content
cmdlet 指定过滤器。使用过滤器限定 Path 参数时,您需要包含尾随星号 (*
) 来指示路径的内容。
以下命令获取 C:\Temp
目录中所有 *.log
文件的内容。
Get-Content -Path C:\Temp\* -Filter *.log
示例 8:获取字节数组形式的文件内容
此示例演示如何以 [byte[]]
形式获取文件内容作为单个对象。
$byteArray = Get-Content -Path C:\temp\test.txt -AsByteStream -Raw
Get-Member -InputObject $bytearray
TypeName: System.Byte[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Add Method int IList.Add(System.Object value)
第一个命令使用 AsByteStream 参数从文件中获取字节流。 Raw 参数确保字节以 [System.Byte[]]
形式返回。如果缺少 Raw 参数,则返回值是字节流,PowerShell 将其解释为 [System.Object[]]
。
参数
-AsByteStream
指定内容应作为字节流读取。 AsByteStream 参数是在 Windows PowerShell 6.0 中引入的。
当您将 AsByteStream 参数与 Encoding 参数一起使用时,会出现警告。 AsByteStream 参数忽略任何编码,并且输出作为字节流返回。
读取和写入二进制文件时,请使用 AsByteStream 参数,并将 ReadCount 参数的值设置为 0。 ReadCount 值为 0 时会在一次读取操作中读取整个文件。默认的 ReadCount 值 1 在每次读取操作中读取一个字节,并将每个字节转换为单独的对象。除非将 AsByteStream 参数与 Set-Content
一起使用,否则通过管道将单字节输出传送到 Set-Content
会导致错误。
SwitchParameter
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-Credential
笔记
随 PowerShell 安装的任何提供程序均不支持此参数。要在运行此 cmdlet 时模拟其他用户或提升您的凭据,请使用 Invoke-Command。
类型 :PS凭证
位置:命名
默认值:当前用户
必需的:False
接受管道输入:True
接受通配符:False
-Delimiter
指定 Get-Content
在读取文件时用于将文件划分为对象的分隔符。默认值为 \n
,即行结束符。读取文本文件时,Get-Content
返回字符串对象的集合,每个对象都以行结束符结尾。当您输入文件中不存在的分隔符时,Get-Content
会将整个文件作为单个无分隔对象返回。
您可以使用此参数通过指定文件分隔符作为分隔符来将大文件拆分为较小的文件。分隔符被保留(不被丢弃)并成为每个文件部分中的最后一项。
Delimiter 是FileSystem 提供程序添加到Get-Content
cmdlet 的动态参数。此参数仅适用于文件系统驱动器。
笔记
目前,当Delimiter参数的值为空字符串时,Get-Content
不会返回任何内容。这是一个已知问题。强制 Get-Content
将整个文件作为单个不带分隔符的字符串返回。输入文件中不存在的值。
String
位置:命名
默认值:行尾字符
必需的:False
接受管道输入:False
接受通配符:False
-Encoding
指定目标文件的编码类型。默认值为 utf8NoBOM
。
该参数可接受的值如下:
ascii
:使用 ASCII(7 位)字符集的编码。ansi
:使用当前区域性的 ANSI 代码页的编码。此选项是在 PowerShell 7.4 中添加的。bigendianunicode
:使用 big-endian 字节顺序以 UTF-16 格式进行编码。bigendianutf32
:使用 big-endian 字节顺序以 UTF-32 格式进行编码。oem
:使用 MS-DOS 和控制台程序的默认编码。unicode
:使用小端字节顺序以 UTF-16 格式进行编码。utf7
:以UTF-7格式编码。utf8
:以UTF-8格式编码。utf8BOM
:使用字节顺序标记 (BOM) 以 UTF-8 格式进行编码utf8NoBOM
:以 UTF-8 格式编码,不带字节顺序标记 (BOM)utf32
:以 UTF-32 格式编码。
编码是 FileSystem 提供程序添加到 Get-Content
cmdlet 的动态参数。此参数仅在文件系统驱动器中可用。
从 PowerShell 6.2 开始,Encoding 参数还允许使用注册代码页的数字 ID(例如 -Encoding 1251
)或注册代码页的字符串名称(例如 -Encoding “windows-1251”
)。有关详细信息,请参阅 Encoding.CodePage 的 .NET 文档。
从 PowerShell 7.4 开始,您可以使用 Encoding 参数的 Ansi
值来传递当前区域性 ANSI 代码页的数字 ID,而无需手动指定。
笔记
不再建议使用UTF-7*。从 PowerShell 7.1 开始,如果为 Encoding 参数指定 utf7
,则会写入警告。
编码
接受的值:ASCII、BigEndianUnicode、BigEndianUTF32、OEM、Unicode、UTF7、UTF8、UTF8BOM、UTF8NoBOM、UTF32
位置:命名
默认值:UTF8无BOM
必需的:False
接受管道输入:False
接受通配符:False
-Exclude
以字符串数组形式指定此 cmdlet 在操作中排除的一个或多个项目。此参数的值限定 Path 参数。
输入路径元素或模式,例如 *.txt
。允许使用通配符。
仅当命令包含某个项目的内容时,排除参数才有效,例如C:\Windows\*
,其中通配符指定的内容>C:\Windows
目录。
String[]
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:True
-Filter
指定一个过滤器来限定 Path 参数。文件系统提供程序是唯一安装的支持使用过滤器的 PowerShell 提供程序。您可以在 about_Wildcards 中找到文件系统过滤器语言的语法。筛选器比其他参数更有效,因为提供程序在 cmdlet 获取对象时应用它们,而不是让 PowerShell 在检索对象后筛选对象。
类型 :String
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:True
-Force
强制可以覆盖只读属性或创建目录来完成文件路径。 Force 参数不会尝试更改文件权限或覆盖安全限制。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-Include
以字符串数组形式指定此 cmdlet 在操作中包含的一个或多个项目。此参数的值限定 Path 参数。输入路径元素或模式,例如 "*.txt"
。允许使用通配符。仅当命令包含某个项目的内容时,Include 参数才有效,例如 C:\Windows\*
,其中通配符指定 的内容>C:\Windows
目录。
String[]
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:True
-LiteralPath
指定到一个或多个位置的路径。 LiteralPath 的值完全按照其键入的方式使用。没有字符被解释为通配符。如果路径包含转义字符,请将其用单引号引起来。单引号告诉 PowerShell 不要将任何字符解释为转义序列。
有关更多信息,请参阅 about_Quoting_Rules。
类型 :String[]
别名:PSPath, LP
位置:命名
默认值:None
必需的:True
接受管道输入:True
接受通配符:False
-Path
指定 Get-Content
获取内容的项目的路径。允许使用通配符。路径必须是项目的路径,而不是容器的路径。例如,您必须指定一个或多个文件的路径,而不是目录的路径。
String[]
位置:0
默认值:None
必需的:True
接受管道输入:True
接受通配符:True
-Raw
忽略换行符并在一个字符串中返回文件的全部内容,并保留换行符。默认情况下,文件中的换行符用作分隔符,将输入分隔为字符串数组。此参数是在 PowerShell 3.0 中引入的。
Raw 是FileSystem 提供程序添加到Get-Content
cmdlet 的动态参数。此参数仅适用于文件系统驱动器。
SwitchParameter
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-ReadCount
指定一次通过管道发送多少行内容。默认值为 1。值为 0(零)或负数时会一次性发送所有内容。
该参数不会改变显示的内容,但会影响显示内容所需的时间。随着ReadCount的值增加,返回第一行所花费的时间增加,但操作的总时间减少。这可以使大件物品产生明显的差异。
类型 :整型64
位置:命名
默认值:1
必需的:False
接受管道输入:True
接受通配符:False
-Stream
笔记
此参数仅在 Windows 上可用。
从文件中获取指定备用 NTFS 文件流的内容。输入流名称。不支持通配符。
Stream 是FileSystem 提供程序添加到Get-Content
cmdlet 的动态参数。此参数仅适用于 Windows 系统上的文件系统驱动器。
此参数是在 Windows PowerShell 3.0 中引入的。在 PowerShell 7.2 中,Get-Content
可以从目录和文件中检索替代数据流的内容。
String
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-Tail
指定从文件或其他项目末尾算起的行数。您可以使用Tail参数名称或其别名Last。值 0
不返回任何行。负值会导致错误。
此参数是在 PowerShell 3.0 中引入的。
类型 :整数32
别名:Last
位置:命名
默认值:None
必需的:False
接受管道输入:True
接受通配符:False
-TotalCount
指定从文件或其他项目开头算起的行数。值 0
不返回任何行。负值会导致错误。
您可以使用TotalCount参数名称或其别名,First或Head。
类型 :整型64
别名:First, Head
位置:命名
默认值:None
必需的:False
接受管道输入:True
接受通配符:False
-Wait
导致 cmdlet 无限期等待,保持文件打开,直到中断。在等待期间,Get-Content
每秒检查一次文件并输出新行(如果存在)。与 TotalCount 参数一起使用时,Get-Content
会等待,直到指定文件中的指定行数可用。例如,如果您将 TotalCount 指定为 10,并且文件已有 10 行或更多行,则 Get-Content
将返回 10 行并退出。如果文件少于 10 行,Get-Content
会在每一行到达时输出它,但会等到第十行到达后再退出。
您可以通过按 Ctrl+C 来中断等待。删除文件会导致非终止错误,也会中断等待。
Wait 是文件系统提供程序添加到 Get-Content
cmdlet 的动态参数。此参数仅适用于文件系统驱动器。 Wait 不能与 Raw 结合使用。
SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
输入
Int64
您可以通过管道将读取计数或总计数传递给此 cmdlet。
字符串[]
您可以通过管道传递此 cmdlet 的路径。
PSCredential
您可以通过管道将凭据传递给此 cmdlet。
输出
字节
当您使用 AsByteStream 参数时,此 cmdlet 将返回字节形式的内容。
字符串
默认情况下,此 cmdlet 将内容作为字符串数组返回,每行一个。当您使用 Raw 参数时,它会返回包含文件中每一行的单个字符串。
笔记
PowerShell 包含以下 Get-Content
别名:
所有平台:
gc
type
Windows:
cat
Get-Content
cmdlet 旨在处理任何提供程序公开的数据。要获取会话中的提供程序,请使用 Get-PSProvider
cmdlet。有关详细信息,请参阅 about_Providers。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag