如何使用PowerShell通过模板文件替换文件文本并替换文件名占位符
批量替换文件内容并替换指定文本问题
问题场景
我有一个模板文件Agriculture.txt,其中多处包含“Agriculture”字样。文件夹内包含该模板文件在内共有约30个文件,除模板文件外其余文件均无内容。我希望将每个文件的内容替换为模板文件的内容,并将文件中的“Agriculture”替换为对应文件名(不含.txt后缀)。
最初尝试的命令及错误
我尝试使用以下PowerShell命令:
$Content = Get-Content C:\Temp\Technologies\Agriculture.txt $FileList = Get-ChildItem C:\Temp\Technologies\ | select FullName $FileList | ForEach-Object { ($Content).replace("Agriculture",$_) | Set-Content $_.FullName }
执行后出现错误:
Cannot find an overload for "replace" and the argument count: "2". At
line:1 char:30
... ch-Object { ($Content).replace("Agriculture",$) | Set-Content $.Ful ...CategoryInfo : NotSpecified: (:) [], MethodException FullyQualifiedErrorId : MethodCountCouldNotFindBest
请问有人能帮我修复这些PowerShell命令吗?谢谢!
修改后的命令及验证
我写了新的命令:
$Content = Get-Content -Raw C:\AMD\Temp\Technologies\Agriculture.txt $FileList = Get-ChildItem C:\AMD\Temp\Technologies\ $FileList | ForEach-Object { ($Content).replace("Agriculture",$_.BaseName) | Set-Content $_.FullName }
这样对吗?
编辑:最后这些命令生效了,感谢Santiago!
内容的提问来源于stack exchange,提问作者TBowman
相关产品推荐
相关产品推荐

