簡體   English   中英

如何在Powershell中附加到日志文件?

[英]How to append to a log file in powershell?

我正在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窗口中並且不會轉到文件中。 有什么建議么?

謝謝馬克。

如果sqlcmd.exe的-o有效但被覆蓋,我將為每個還原創建一個日志文件,然后將所有返回的內容通過管道傳輸到一個主日志文件中。 然后,您可以根據需要清理中間文件。

sqlcmd是否可能將其日志輸出到stderr? 如果是這樣,則在末尾放置2>&1 ,這將使標准錯誤流與標准輸出流相同。

我敢問如果您已經在使用PowerShell,為什么要通過cmd來完成所有這些工作? Start-Process什么問題? :-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM