在 Windows PowerShell 中逐行读取文件
在 Windows PowerShell 中,我们可以使用 Get-Content
cmdlet 从文件中读取文件。但是,该 cmdlet 会立即将整个文件内容加载到内存中,这会导致大文件失败或冻结。
为了解决这个问题,我们可以做的是我们可以逐行读取文件,本文将向你展示如何。
在开始之前,最好创建一个包含多行的示例文本文件。例如,我创建了一个包含以下行的 file.txt
。
file.txt
:
one
two
three
four
five
six
seven
eight
nine
ten
根据微软的说法,正则表达式是一种用于匹配文本的模式。它可以由文字字符、运算符和其他结构组成。本文将尝试不同的脚本,其中涉及一个称为正则表达式的标准变量,用 $regex
表示。
改进 Get-Content
Cmdlet 语法
我们最初讨论过 Get-Content
cmdlet 在我们加载大文件时存在缺陷,因为它会将文件的内容一次全部加载到内存中。但是,我们可以通过使用 foreach
循环逐行加载来改进它。
示例代码:
foreach($line in Get-Content .\file.txt) {
if($line -match $regex){
Write-Output $line
}
}
使用 switch
加载特定行
我们可以使用 $regex
变量通过创建自定义 $regex
值并在 switch case 函数中匹配它来输入文件中的特定行。
示例代码:
$regex = '^t'
switch -regex -file file.txt {
$regex { "line is $_" }
}
输出:
line is two
line is three
line is ten
在这个例子中,我们定义了一个自定义值 $regex
,它只匹配并显示以字符 t
开头的行。
使用 PowerShell 中的 [System.IO.File]
类逐行读取文件
如果你有权访问 .NET 库,则可以使用 [System.IO.File]
类从文件中读取内容。它是 Get-Content
的绝佳替代品,因为你不需要正则表达式来逐行处理文件。
示例代码:
foreach($line in [System.IO.File]::ReadLines("C:\yourpathhere\file.txt"))
{
Write-Output $line
}
相关文章
通过 PowerShell 命令在任务计划程序中运行计划任务
发布时间:2024/02/06 浏览次数:133 分类:编程语言
-
本教程将教你使用 PowerShell 命令在任务计划程序中启动计划任务。
使用 PowerShell 下载和安装适用于 Windows 的 Git 客户端
发布时间:2024/02/06 浏览次数:125 分类:编程语言
-
本教程将教你使用 PowerShell 下载和安装适用于 Windows 的 Git 客户端。
在 PowerShell 中运行 SQL 查询
发布时间:2024/02/06 浏览次数:160 分类:编程语言
-
本文介绍如何调用 SQL 服务器的命令、执行 CRUD 操作以及查询 SQL 的其他替代方法。
使用 PowerShell 检查 SQL Server 版本
发布时间:2024/02/06 浏览次数:147 分类:编程语言
-
本教程将教你使用 PowerShell 检查 SQL Server 版本。检查程序的版本是你可以在 PowerShell 中执行的常见操作之一。
使用 PowerShell 获取磁盘空间信息
发布时间:2024/02/06 浏览次数:189 分类:编程语言
-
本文讨论了几个命令,这些命令将导出我们所有系统驱动器的信息,并了解如何使用 PowerShell 确定我们机器中剩余的驱动器空间。
在 PowerShell 中将项目添加到数组
发布时间:2024/02/06 浏览次数:153 分类:编程语言
-
本教程将教你在 PowerShell 中将项目添加到数组中。本教程将介绍在 PowerShell 中向数组添加项目。使用 += 将项目添加到 PowerShell 中的数组
在 PowerShell 中访问 $args 数组
发布时间:2024/02/06 浏览次数:155 分类:编程语言
-
本文将介绍 PowerShell 中的 $args 数组和 $args[] 函数。$args 是一个数组,因此你可以传递多个值并在 PowerShell 脚本或函数中访问它们。
在 PowerShell 中选择数组的所有对象上的一个属性的值
发布时间:2024/02/06 浏览次数:121 分类:编程语言
-
本教程将教你在 PowerShell 中为数组的所有对象选择一个属性的值。数组是值或对象的集合。大多数编程语言都将数组作为基本特征。