如何将PowerShell中Foreach的处理结果输出至文件?
解决PowerShell脚本输出到文件的问题
原脚本的核心问题是用了Write-Host——这个命令仅会把内容输出到控制台,不会将内容传入PowerShell的管道流,因此没法后续把结果写入文件。
修改后的脚本方案
可以通过以下两种方式实现将处理结果输出到文件:
方案1:用Out-File命令(推荐,可指定编码)
$text = Get-Content output.txt $text -replace '["|,]','' | ForEach-Object { $_.TrimStart() } | Out-File -FilePath processed_output.txt -Encoding UTF8
方案2:用重定向符>(简洁写法)
$text = Get-Content output.txt $text -replace '["|,]','' | ForEach-Object { $_.TrimStart() } > processed_output.txt
额外优化说明
- 把两个
-replace合并成-replace '["|,]','',可以同时移除双引号和逗号,提升处理效率。 - 如果需要追加内容到现有文件而非覆盖,把
>换成>>,或者在Out-File后加-Append参数。
内容的提问来源于stack exchange,提问作者Kari Jobe
相关产品推荐
相关产品推荐

