可能是由于在另一个 PowerShell 任务或正在运行的进程中已经打开并使用了输出文件而导致的。您可以添加一些代码以确保输出文件在任务完成后被安全关闭,然后再重新打开以写入任何新的输出。以下是一些示例代码,您可以添加到任务中以解决此问题:
#关闭输出文件,如果已经打开
$outputFile = "C:\myOutputFile.txt"
$stream = [System.IO.StreamWriter]::new($outputFile, $true)
if($stream.BaseStream.CanWrite) {
$stream.Flush()
$stream.Close()
}
#执行任务代码,并将输出写入输出文件
Write-Output "This is my output" | Out-File $outputFile -Append
您也可以考虑使用另外一些 PowerShell命令来确保在文件使用后关闭句柄:
#打开文件并写入输出
$outputFile = "C:\myOutputFile.txt"
$stream = [System.IO.File]::Open($outputFile, [System.IO.FileMode]::Append, [System.IO.FileAccess]::Write, [System.IO.FileShare]::Read)
Write-Output "This is my output" | Out-File $stream -Force
#关闭文件句柄
$stream.Close()