2010-11-05 72 views
5

指揮寬度,我想了很多數據Write-Verbose的out文件。這是我如何做的。寫詳細輸出不換行PowerShell中

Start-Transcript -Path $TargetDir\RunUnitTests.log -Width 1000000 
Write-Verbose "five million character lines and stuff" 

這很好,除了輸出自動包裝到控制檯的標準寬度,這使得日誌看起來絕對可怕。

我發現了一個解決方案在這裏死鏈接刪除 ,但它是如此投入和複雜的,我不希望在我的劇本,只是拋出此評論#Thar be dragons以下。

有沒有更好的方法來做到這一點?

+0

爲了防止纏繞在_all_詳細輸出,相關的問題,不只是從顯式調用'寫Verbose',請參閱[這個問題](http://stackoverflow.com/q/41504786/45375) 。 – mklement0 2017-01-08 13:02:50

回答

5

這是基於Write-Host一個非常簡單的解決方法不存在這樣的問題。在會議開始時安裝/點源更換默認Write-Verbose的:

function global:Write-Verbose 
(
    [string] 
    $Message 
) 
{ 
    # check $VerbosePreference variable 
    if ($VerbosePreference -ne 'SilentlyContinue') { 
     # do this via Write-Host 
     Write-Host "VERBOSE: $Message" -ForegroundColor 'Yellow' 
    } 
} 

然後這個工程需要:

$VerbosePreference = 'Continue' 
Start-Transcript -Path .\RunUnitTests.log 
Write-Verbose ("verbose writes five million character lines and stuff. " * 20) 

那就是:它考慮到$VerbosePreference,將其寫入主機以黃色顯示,成績單輸出未被包裝,並且仍標記爲VERBOSE。

********************** 
Windows PowerShell Transcript Start 
Start time: 20101105055855 
********************** 
Transcript started, output file is .\RunUnitTests.log 
VERBOSE: verbose writes ... <long line text> ... and stuff. 
********************** 
Windows PowerShell Transcript End 
End time: 20101105055855 
********************** 
+2

你可能或許也想裝點支持流水線的參數'[參數(位置= 0,強制= $真實,ValueFromPipeline = $真)]' – 2013-10-14 09:05:40