gpt4 book ai didi

Powershell 3 : Remove last line of text file

转载 作者:行者123 更新时间:2023-12-01 03:39:35 25 4
gpt4 key购买 nike

我正在使用以下脚本遍历文件夹中的文件列表,然后它将正则表达式搜索包含“T|0-9”的字符串,该字符串是预告片记录并将出现在每个文本文件的末尾.

$path = "D:\Test\"
$filter = "*.txt"
$files = Get-ChildItem -path $path -filter $filter

foreach ($item in $files)

{
$search = Get-content $path$item
($search)| ForEach-Object { $_ -replace 'T\|[0-9]*', '' } | Set-Content $path$item

}

这个脚本工作正常,但是,它可能需要很长时间才能浏览大文件,因此我使用了“-tail 5”参数,以便它从最后 5 行开始搜索,问题是它正在删除所有内容并且只在提要中留下最后一行。

有没有其他方法可以实现这一点?

我尝试了另一个我发现的示例代码,但它并没有真正起作用,有人可以指导我吗
$stream = [IO.File]::OpenWrite($path$item)
$stream.SetLength($stream.Length - 2)
$stream.Close()
$stream.Dispose()

最佳答案

Get-Content返回 array ,您可以使用 [-1] 访问最后一项(最后一行) :

foreach ($item in $files)
{
$search = Get-content $item.FullName
$search[-1] = $search[-1] -replace 'T\|[0-9]*', ''
$search | Set-Content $item.FullName
}

关于Powershell 3 : Remove last line of text file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31804594/

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