将 powershell 脚本的某些字符指定为 运行 on

Specifying certain characters for powershell script to run on

这可能是在黑暗中拍摄的,我已经做了一些研究,但似乎找不到任何关于此的东西。但是我猜 powershell 一切皆有可能!

我之前问过一个问题!关于如何更改脚本中的某些字符。

$infopath = Get-ChilItem "C:\Users\X\Desktop\Info\*.txt" -Recurse

$infopath | %{ 
(gc $_) -replace "bs", "\" -replace "fs", "/" -replace "co", ":" -replace ".name", "" | Set-Content $_.fullname 

但是文本文件的某些部分可能包含 bs、fs 或 co,我不想更改。因此,我想做的是将某种参数添加到此现有脚本中,该脚本仅更改最后 70 个字符中的文本,或者在第 4 个 # 之后或第 78 个字符之后。

就像我说的,这很可能是一个荒谬的想法,但我想看看其他人的看法。

非常感谢任何帮助!

根据您关于获取第 78 个字符后的子字符串的建议,我使用 78 作为起点创建了以下内容。这将保留前 78 个字符未编辑,并在第 78 个字符之后替换给定的字符串。整个文件被替换为输出。

$infopath = Get-ChilItem "C:\Users\X\Desktop\Info\*.txt" -Recurse
$startpos = 78

$infopath | %{
  $content = (gc $_);
  $content.Substring(0,$startpos)+($content.Substring($startpos,$content.Length-$startpos) -replace "bs", "\" -replace "fs", "/" -replace "co", ":" -replace ".name", "")|Set-Content $_.fullname
}

希望对您有所帮助。

谢谢,克里斯。