gpt4 book ai didi

powershell - 在 PowerShell 中检查文件的最后一行是否为空

转载 作者:行者123 更新时间:2023-12-03 00:41:04 45 4
gpt4 key购买 nike

我想在新行中向文件添加一些内容。但是如果末尾没有换行符号,add-content 会将字符串附加到最后一行。

例如如果我想添加 AAA 字符串并且如果我有一个文件 file1.txt

my last line(last cursor position here)

结果将是

my last lineAAA

另一方面,如果我使用file2.txt

my last line
(last cursor position here)

该命令将导致

my last line
AAA

所以我需要检查最后一行是否为空。如果它不为空,我将在字符串中添加 `n 符号。

但是如果我运行命令

$lastLine = get-content $filename -Tail 1
if($lastLine.Length -ne 0) { ... }

即使我的最后一行不包含符号,它也总是会返回一个非空字符串的长度。如何检查我的最后一行是否为空?

最佳答案

您可以选择开始向文件添加换行符,并添加第一行执行

$file      = 'D:\Test\Blah.txt'
$firstLine = 'AAA'
Add-Content -Path $file -Value ("{0}`r`n{1}" -f (Get-Content -Path $file -Raw).TrimEnd(), $firstLine)

在第一行之后,您可以简单地继续使用 Add-Content ,它总是附加一个换行符(除非您使用开关 -NoNewline 告诉它不要这样做)。


看到您的评论,您可以像这样测试最后一行的长度:
$file = 'D:\Test\Blah.txt'
$lastLine = ((Get-Content -Path $file -Raw) -split '\r?\n')[-1]
# $lastLine.Length --> 0
if($lastLine.Length -ne 0) { ... }

-Raw 开关告诉 Get-Content 在单个字符串中读取整个文件。使用 -split '\r?\n' 将此字符串拆分为单独的行,您将得到一个数组,包括最后一个空行

关于powershell - 在 PowerShell 中检查文件的最后一行是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63519923/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com