如何在PowerShell中替换文本为原词+换行符+变量内容?
PowerShell文本替换修正方案
你的需求是找到文本中的find,替换为「原词+换行+变量内容」,原代码存在两处关键问题:一是错误将文件内容赋值给文件名变量,二是替换逻辑未保留原词和添加换行。
修正后的完整命令:
powershell -command "$file='file.txt';$var=(gc value.txt -Raw).TrimEnd();$content=(gc -encoding utf8 $file -Raw) -replace 'find', '$&`n$var';$null=new-item -force $file -value $content"
关键修改说明:
- 修正文件名变量:将
$file=(gc file.txt)改为$file='file.txt',确保$file指向目标文件名而非文件内容 - 优化变量读取:用
-Raw读取value.txt内容并通过TrimEnd()去除末尾多余换行,避免重复空行 - 替换逻辑调整:
-replace 'find', '$&n$var'中,$&代表匹配到的原词find,n是换行符,$var`是从文件读取的新增文本,三者拼接实现需求效果 - 保留原文件格式:读取原文件时用
-Raw参数,避免默认按行拆分后重组丢失原有换行结构
内容的提问来源于stack exchange,提问作者leiseg
相关产品推荐
相关产品推荐

