2014-02-12 26 views
1

我遇到了format-table的輸出問題。我不知道是否有辦法做到這一點,但這是值得一問的...Powershell格式表:邏輯上打破長字符串

我打算只是潛入並定義我現在在精簡層面上的工作。

$ find = read-host「你想找什麼?」

$ file = read-host「你想要看什麼?」

$格式= @ {表達式= {$ .linenumber};標籤= 「線」;寬度= 5},{@表達式= {$ .line區段};標籤= 「數據」

$ result = select-string -simple $ find $ file |選擇LineNumber,Line | format-table $ format -auto -wrap | foreach-object {$ _;回聲「」}

$導致

最終的結果是相當簡單的,它使一個兩列的表與一個小的「line」列,並在該行中的數據大的柱。

存在一個問題:數據列在字符長度處出現中斷,這使得讀取或輸出到文件時出現問題。一個例子如下:

Line Data                   
---- ----                   

    17 <div role="note">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Se 
    d sit amet varius leo, vel adipiscing lacus. Ut pharetra tristique mauris id 
     pulvinar. Nunc dictum volutpat eros, ut mattis purus ultrices vehicula. Mor 
    bi non rhoncus tortor, in pulvinar tortor. 

正如你所看到的,「sed」和「Morbi」在行結尾被剪切。如果它以確定空間並下降到下一行的方式進行切割會很好。任何幫助,將不勝感激。

編輯:標記爲正確的解決方案被標記爲這樣,因爲它可能是最理想的。如果有更好的選擇出現,那可能會成爲解決方案。我只是使用它,它運作得很好。

+1

我不認爲你會這樣做。它只是簡單的寬度格式,所以它重量輕,速度快。如果他們使文本編輯器的風格變得格格不入,它將開始變得越來越重要。 – mjolinor

+0

同意@mjolinor –

回答

0

你是否嘗試用大的寬度將它輸送到Out-String?

+0

我一直沒有,直到你建議它。靜態大寬度只是在不同的地方做同樣的事情(用500做,但不用1000,因爲線條不長)。 我可能必須得到它找到的字符串的長度,爲該長度分配一個變量,並且如果沒有其他的話,則將其稱爲-width標誌。這看起來過於複雜,但從長遠來看,靈活性可能是值得的。 – MrSchism

+0

事後看來,在控制檯中,只有在轉儲文件時,寬度纔會有所幫助。 – MrSchism