私はPowerShellでSQLServer2005データベースの並列復元を行っています。私が行った方法は、cmd.exeを使用して起動し、PowerShellが完了するのを待たないようにすることです。私がする必要があるのは、appendを使用して出力をログファイルにパイプすることです。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ウィンドウに残り、ファイルに移動しないため、機能しません。助言がありますか?
ありがとう、マーク。