【发布时间】:2011-01-28 00:47:42
【问题描述】:
我正在 Powershell 中进行一些并行的 SQL Server 2005 数据库恢复。我这样做的方法是使用 cmd.exe 并启动,以便 powershell 不会等待它完成。我需要做的是将输出通过附加管道传输到日志文件中。如果我使用 Add-Content,那么 powershell 会等待,这不是我想要的。
我的代码sn-p是
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 窗口中并且没有转到文件。有什么建议吗?
谢谢, 标记。
【问题讨论】:
-
您的问题中有一个小错字。请将 SQL Server 20005 更改为 SQL Server 2005。
标签: sql-server powershell sqlcmd