我检查文件中缺少特殊位置的char的行。如果缺少字符,我将它插入到确切的位置。现在我想用旧行中的那个额外字符将新行写入文件。Powershell - 替换一些行
"C:\\path\test\test"
"C:\\path\test\test2\"
"C:\\path\test\test3\"
我跑我的短剧本后,我希望它看起来像:
"C:\path\test\test\"
"C:\path\test\test2\"
"C:\path\test\test3\"
我尽力去完成,使用这个小环:比如我已在该文件中以下
$content = Get-Content C:\path\to\file.txt
foreach ($line in $content)
{
if($line[-25] -ne '\') {
$test = $line -replace '(?<!\\)(?=.{24}$)', '\' | Set-Content C:\path\to\file.txt
}
else {
continue
}
}
该代码不会插入我在正确位置的字符。但最后只有一行在文件中,而不是全部三行。 我觉得我很接近,但刚刚开始使用PowerShell。
谢谢,完美的作品!对于可能有类似问题的其他人,将'Get-Content C:\ path \ to \ file.txt'放在方括号内(Get-Content C:\ path \ to \ file.txt)'。否则,Set-Content无法访问该文件,因为它仍然由Get-Content使用。 – BallerNacken
@BallerNacken好点;你也可以写一个单独的文件,这将做到这一点。 – briantist