欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PowerShell中读取多行文本示例

程序员文章站 2022-03-14 08:04:53
适用于powershell3.0或者更高本版 有时,你可能会偶尔发现下面的代码: 复制代码 代码如下: $filepath = "$env:systemroot\wi...

适用于powershell3.0或者更高本版

有时,你可能会偶尔发现下面的代码:

复制代码 代码如下:

$filepath = "$env:systemroot\windowsupdate.log"
$contentswithlinebreaks = (get-content $filepath) -join "`r`n"

猜猜它,想干啥子奥,get-content 默认将文本文件以单行读取,并且返回一个多行数组,而-join操作符可以将它们转换成一个单独的字符串。而伴随着powershell3.0 的低调问世,有这么一个参数: -raw,它可以非常高效的得到上面代码同样的结果:

复制代码 代码如下:

$filepath = "$env:systemroot\windowsupdate.log"
$contentswithlinebreaks = (get-content $filepath) -join "`r`n"
$contentswithlinebreaks2 = get-content $filepath -raw
$contentswithlinebreaks -eq $contentswithlinebreaks2

试着运行上面的代码, $contentwithlinebreaks 和$contentwithlinebreaks2可能比较的结果略微有所不同,其不同可能只是换行符而已。

那我们继续辨别真伪,果不其然:

复制代码 代码如下:

ps> $contentswithlinebreaks -eq $contentswithlinebreaks2.trimend("`r`n")
true