我正在编写一个PowerShell脚本,需要进行多个字符串替换。
foreach ($file in $foo) {
$outfile = $outputpath + $file
$content = Get-Content ($file.Fullname) -replace 'foo','bar'
Set-Content -path $outfile -Force -Value $content
}
我已经通过控制台记录
$outfile
和$content
(上面的代码中没有显示),验证了正确的文件被选中,-replace
准确地更新了内容,并且$outfile
已经创建。然而,每个输出文件都是0字节文件。Set-Content
行似乎没有将数据写入文件。我尝试将Set-Content
管道传输到Out-File
,但这只会给我一个错误。当我用
Out-File
替换Set-Content
时,我收到一个运行时错误Out-File:找不到与参数名称“path”匹配的参数。
,即使我可以将$outfile
输出到控制台并查看它是有效路径。是否有其他步骤(例如关闭文件或保存文件命令)需要执行,或者需要以不同的顺序传输某些内容才能让
$content
写入$outfile
?我缺少哪个组件?
-replace
并准确地修改了内容,当我将$content
记录到控制台时... - dwwilson66$file
是仅有的文件名,而$outfile
则将路径附加到文件头以供输出。这个新建的文件大小为零字节。如果我理解正确,$file.Fullname
引用了源文件的完整路径,根据控制台输出显示,它似乎被正确地读取了。 - dwwilson66