-1

これが私のコードです:

Write-Host "Field 1 : " $variable1  
Write-Host "Field 2 : " $variable2
Write-Host "Field 3 : " $variable3
Write-Host "Field 4 : " $variable4

次のような出力が得られます:

   Field 1    : " $variable1    
   Field 2          : " $variable2
   Field 3      : " $variable3
   Field 4           : " $variable4

どうすればそれらを揃えることができますか?

ありがとう

4

1 に答える 1

5

彼の以前の質問に基づいて、field1、2、3...は可変長のdbフィールド名だと思います。

最初の解決策、あまりエレガントではありませんが、-f形式の演算子を使用して、2番目の列を揃えるために空白を追加できます(以下では、40文字から最初の列の長さを引いたものを使用します)

$field1=@("name";"username1")
$field2=@("age";24)
$field3=@("email";"you@there.com")

wh $field1[0] " : " $field1[1] 
wh $field2[0] " : " $field2[1]
wh $field3[0] " : " $field3[1]

wh

#fill some extra whitespaces 
$spaces1=40 - $field1[0].Length
$spaces2=40 - $field2[0].Length
$spaces3=40 - $field3[0].Length
"{0}{1,$spaces1}" -f $field1[0], " : "+$field1[1]
"{0}{1,$spaces2}" -f $field2[0], " : "+$field2[1]
"{0}{1,$spaces3}" -f $field3[0], " : "+$field3[1]

結果

name  :  username1
age  :  24
email  :  you@there.com

name                                  : username1
age                                   : 24
email                                 : you@there.com

2番目の解決策

pscustomオブジェクトを作成する場合は、format-tableなどの高度なコマンドレットをすべて使用できます:):

$col=@(
[PSCustomObject]@{$field1[0]=$field1[1]},
[PSCustomObject]@{$field2[0]=$field2[1]},
[PSCustomObject]@{$field3[0]=$field3[1]}
)

$col |ft

結果 :

Name                           Value                                                                                 
----                           -----                                                                                 
name                           username1                                                                             
age                            24                                                                                    
email                          you@there.com  
于 2012-12-10T06:50:29.463 に答える