2014-03-19 20 views
0

我希望有條件地適用於Format-Wide管道:條件格式-Wide在管道

Get-ChildItem | Format-Wide 

我怎樣才能讓| Format-Wide部分有條件的變量?例如,僅當$conditionTrue時才應用| Format-Wide

編輯:下面是我想達到什麼:

function format-conditional { 
    param ([bool]$condition) 
    if ($condition) {$input | Format-Wide -Column 3 } 
    else {$input} 
} 

Invoke-Expression ("Get-ChildItem $Args") | 
%{ 
    $fore = $Host.UI.RawUI.ForegroundColor 
    $Host.UI.RawUI.ForegroundColor = 'Green' 
    echo $_ 
    $Host.UI.RawUI.ForegroundColor = $fore 
} | format-conditional $false 

但與此Green顏色消失。

回答

2

,如果你想這樣做在管道中你需要創建自己的函數,該函數:

function format-conditional 
{ 
    param ([bool]$condition) 
    if ($condition) {$input | format-wide } 
    else {$input} 
} 

$test = $true 

gci | format-conditional $test 
+0

非常感謝。這當然解決了這個問題,除了當我應用這個時,我失去了我設置的前景色。我添加了一個顯示我想要的內容的片段,請你評論我爲什麼會失去顏色? – joon

+0

不是。這是一個完整的蠕蟲。 – mjolinor