是否可以搜索文件,替换文件中的某些文本并仅保存编辑后的文本

时间:2019-04-11 17:05:02

标签: powershell replace

我想制作自己的小加密和解密工具。我已经有了加密脚本和“数据库”,现在只需要解密工具。现在出现了PowerShell脚本。我在一个文本文件中有多个字符串,我的加密密码保存在其中,脚本应该在文本文件中搜索那些字符串,然后用密码替换,而不是只需要将已编辑的文本(解密密码)保存在另一个文件中。有没有办法用PowerShell做到这一点?

我尝试了-replace,但随后只更改了一个字符串,并保存了文件的其余部分

$1  = "abc"
(Get-Content Text.txt) | ForEach-Object { $_ -replace $1, "`na" } | Set-Content EditedText.txt

$2  = "def"
(Get-Content Text.txt) | ForEach-Object { $_ -replace $2, "`nb" } | Set-Content EditedText.txt

1 个答案:

答案 0 :(得分:1)

我假设这是您想要做的。

(Get-Content -Path Text.txt -Raw).Replace($1, "'na").Replace($2, "'nb") | Out-File EditedText.txt

-Raw 标志将返回字符串对象而不是字符串[],并且 .Replace(valueToReplace,newValue)方法是字符串类的一部分。最后,Out-File将其输出到新文件。如果要将其附加到现有文件,请使用“输出文件”命令上的-追加开关。否则,它将仅覆盖该文件(如果存在)。