多个PowerShell脚本输出到相同的文本文件
问题描述:
我有一组ps脚本调用其他ps脚本。他们都需要写入相同的文本文件。父脚本的第一个输出应该清除文件。所有后续的ps脚本都应附加到文本文件中,其中包括后面的逻辑中的父脚本。使用Out-File
,父PS脚本将打开并锁定文件。儿童PS脚本应追加到文件中,但由于父母创建了文本文件,因此子PS脚本无法默认添加到文本文件。我试过了Out-File和Add-Content
。 Add-Content
把中文放到文本文件中。多个PowerShell脚本输出到相同的文本文件
答
带附加或添加内容的Out-File都可以使用。 除非你实际上是试图写中国,the encoding could be wrong.
$File ="PathTo\test.txt"
Get-Date | Out-File $File -Encoding ascii
"TEXT" | Out-File $File -Append -Encoding utf32
Add-Content -Path $File -Value "END" -Encoding Unicode
正如你可以在文件中看到,其结果取决于编码变化。 如果你正在学中文,我的猜测是字节。 更早的可能转换问题。
答
它采取了彼得施耐德的评论和马丁范代尔夫特的答案得到它的工作组合。
你可以使用Mutexes ...在这里看到[详细](https://learn-powershell.net/2014/09/30/using-mutexes-to-write-data-to-the-same- logfile-across-processes-with-powershell /)例子... –