如何用Powershell脚本替换文件中指定关键词所在行的N个字符
PowerShell 文件指定行末尾替换方案
你可以选择以下两种稳定方案实现需求,都不会改动文件其他内容:
方案1:整文件正则替换(写法最简单)
直接通过正则定位目标行并替换末尾2个字符,适合快速使用:
# 替换为你的实际文件路径和要更新的后缀 $targetFile = "C:\path\to\your\file" $newSuffix = "12" # 执行替换并回写文件 (Get-Content $targetFile -Raw) -replace '(?<=^#define KEYWORD\s+.{0,100})\w{2}$', $newSuffix, 'MultiLine' | Set-Content $targetFile -NoNewline
如果需要指定文件编码,可在Set-Content后添加 -Encoding UTF8 等参数适配你的文件编码。
方案2:逐行匹配替换(兼容性最高)
逐行遍历判断,避免正则误匹配其他无关行,适合文件内容复杂的场景:
# 替换为你的实际文件路径和要更新的后缀 $targetFile = "C:\path\to\your\file" $newSuffix = "12" $fileContent = Get-Content $targetFile $outputContent = foreach ($line in $fileContent) { if ($line.StartsWith("#define KEYWORD ")) { # 移除末尾2个字符后拼接新后缀 $line.Substring(0, $line.Length - 2) + $newSuffix } else { $line } } # 回写文件,可按需添加Encoding参数指定编码 $outputContent | Set-Content $targetFile
内容的提问来源于stack exchange,提问作者kiryakov
相关产品推荐
相关产品推荐

