我想替换多个文件和文件夹中的文本。文件夹名称发生变化,但文件名始终为 config.xml。
$fileName = Get-ChildItem "C:\config\app*\config.xml" -Recurse
(Get-Content $fileName) -replace 'this', 'that' | Set-Content $fileName
当我运行上面的脚本时,它可以工作,但它会在 config.xml 中写入整个文本大约 20 次。怎么了?
$filename 是一个集合System.IO.FileInfo objects
。
您必须循环才能获取每个文件的内容:
这应该做你想做的:
$filename | %{
(gc $_) -replace "THIS","THAT" |Set-Content $_.fullname
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)