【发布时间】:2020-09-29 00:53:02
【问题描述】:
我正在逐行阅读文本文件。如果我看到一个特定的字符串,我会找到一个特定字符的第一个和最后一个,使用两个子字符串创建一个较小的字符串,然后替换文本文件中的行。
困难的部分:我将文本行存储在一个变量中,但不知道如何在文本文档中的旧行上写下这个新行。
请原谅粗略的代码 - 我一直在测试东西,几个小时前才开始使用 PowerShell。
foreach($line in [System.IO.File]::ReadLines("C:\BatchPractice\test.txt"))
{
Write-Output $line
if ($line.Contains("dsa")) {
Write-Output "TRUEEEEE"
}
$positionF = $line.IndexOf("\")+1
$positionL = $line.LastIndexOf("\")+1
$lengthT = $line.Length
Write-Output ($positionF)
Write-Output $positionL
Write-Output $lengthT
if($line.Contains("\")){
Write-Output "Start"
$combine = $line.Substring(0,$positionF-1) + $line.Substring($postionL,($lengthT-$positionL))
Write-Output $combine
$line1 = $line.Substring(0,$positionF-1)
$line2 = $line.Substring($positionL,($lengthT-$positionL))
$combined = $line1 + $line2
Write-Output $combined
Write-Output "Close"
}
}```
【问题讨论】:
-
可能更容易的方法。您应该举例说明文本文件的外观以及您尝试替换并最终得到的内容。了解在尝试写入同一个文件之前需要完成读取文件非常重要,因此最好将整个内容读入一个变量,然后在写出之前对其进行处理。
标签: powershell