我想找到“蓝色”的每个实例,并在多个文本文件中将其更改为“粉红色”。我无法下载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?
谢谢。
答案 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 }