2010-07-06 77 views
1

我正在將一些csv數據轉換爲文件格式,該文件格式期望值在一行中的某個位置。我想我會使用格式表來完成這個設置列的寬度。但是,這會在列之間增加一個不需要的額外空間。有沒有辦法刪除空間或有其他格式選項,我可以使用?如何刪除Powershell中的列之間的額外空間格式 - 表

$format = 
@{E={$_.lname}; width=30}, 
@{E={$_.fname}; width=30}, 
@{E={$_.dob}; width=8}, 
@{E={if($_.sex -eq 'F') { 'V' } elseif($_.sex -ne 'M') { 'O' } else { $_.sex} }; width=1}, 

... 

@{E={if($_.mstatus -eq 'M') {'Y'} else {'N'}}; width=1;}, 
@{E={$_.social}; width=50}; 

import-csv -Delimiter '|' .\data.txt | ft $format -hidetableheaders | out-file -width 2500 'c:\temp\temp.txt' 

回答

4

沒有辦法擺脫Format-Table AFAIK輸出的額外空間。嘗試輸出作爲一個字符串例如: -

... | Foreach { '{0,-30}{1,-30}{2,-8}' -f $_.lname, $_.fname, $_.dob } 

注意,這是一個.NET格式化字符串和所有正常.NET formatting directives適用。

相關問題