我正在 Powershell 中进行一些并行的 SQL Server 2005 数据库恢复。我这样做的方法是使用 cmd.exe 并启动,以便 powershell 不会等待它完成。我需要做的是将输出通过附加管道传输到日志文件中。如果我使用 Add-Content,则 powershell 会等待,这不是我想要的。
我的代码片段是
foreach ($line in $database_list)
{
<snip>
# Create logins
sqlcmd.exe -S $instance -E -d master -i $loginsFile -o $logFile
# Read commands from a temp file and execute them in parallel with sqlcmd.exe
cmd.exe /c start "Restoring $database" /D"$pwd" sqlcmd.exe -S $instance -E -d master -i $tempSQLFile -t 0 -o $logFile
[void]$logFiles.Add($logFile)
}
问题是 sqlcmd.exe -o 覆盖。我试过这样做来追加:
cmd.exe /c start "Restoring $database" /D"$pwd" sqlcmd.exe -S $instance -E -d master -i $tempSQLFile -t 0 >> $logFile
但它不起作用,因为输出停留在 SQLCMD 窗口中并且没有转到文件。有什么建议么?
谢谢,马克。