更改多个文本文件的内容

时间:2017-10-23 16:43:34

标签: windows powershell batch-file cmd

我想找到“蓝色”的每个实例,并在多个文本文件中将其更改为“粉红色”。我无法下载FAR(查找和替换)软件,因此我需要使用计算机上已有的软件:Powershell / cmd / batch。

我不知道如何在Powershell中为多个文件执行此操作,我决定将批处理和Powershell结合起来。这是我目前的批处理代码:

for %%F in ("C:\mypath\*") do (
powershell -command(get-content %%F) -replace 'blue', 'pink'| set-content -encoding ASCII %%F
)

这不起作用,我收到错误消息“set-content未被识别为内部命令”。

我意识到一起使用两种语言可能会导致一些问题,那么这只能用于批处理还是专门用于Powershell?

谢谢。

2 个答案:

答案 0 :(得分:0)

这是完成的代码。它找到" blue"并将其替换为" pink"通过多个文件,路径包含空格:

for %%F in ("C:\mypath\*") do powershell -command "(get-content '%%F') -replace 'blue', 'pink'| set-content -encoding ASCII '%%F'"

感谢Aacini,Squashman和Compo的帮助。

答案 1 :(得分:0)

如果可以,您应该只使用PowerShell:

Get-ChildItem "C:\mypath" -file | %{$path=$_.FullName; (Get-Content $path).Replace('blue', 'pink') | set-content $path -encoding ASCII }