我需要使用 PowerShell 5.1 读取文件、对其进行编辑,并将结果写入另一个文件。我一直在研究/sf/ask/3187831111/,并且已经能够将那里的信息调整为接近我想要的内容,目前是下列:
PowerShell -ExecutionPolicy Bypass -Command "(Get-Content $$source_file -Raw) -replace 'AAA','BBB' | Out-File -filepath output_file"
Run Code Online (Sandbox Code Playgroud)
这可行,但我有两个问题尚未找到答案:
-replace。 这是不起作用的版本:
PowerShell -ExecutionPolicy Bypass -Command "(Get-Content $$source_file -Raw) -replace ""AAA"",""BBB"" | Out-File -filepath output_file"
Run Code Online (Sandbox Code Playgroud)
所以我的第一个问题是,如何在值表达式中包含变量名,使其能够扩展到其实际值?
我的第二个问题是,我需要对文件进行多次编辑。由于该-replace运算符似乎与 Get-Content commandlet 相关,因此我尝试了以下操作:
PowerShell -ExecutionPolicy Bypass -Command "(Get-Content $$source_file -Raw) -replace 'AAA','BBB' -replace 'CCC','DDD' | Out-File -filepath output_file"
Run Code Online (Sandbox Code Playgroud)
第二个表达式的存在-replace引发了错误异常。因此,如果我需要在最终版本写回文件系统之前对源文件进行多次编辑,除了再次通过新的 Get-Content 管道发送整个文件之外,是否有一种简单的方法可以做到这一点每次编辑?
谢谢。
powershell ×1