如题,当我新建一个object对象时,如果建立的属性在4个以内,可以同排输出,如下:
$psobject=New-Object psobject $psobject|Add-Member noteproperty "Name" "Arthas" $psobject|Add-Member noteproperty "Age" "10" $psobject|Add-Member noteproperty "Job" "Student" $psobject|Add-Member noteproperty "Hobby" "Reading" $psobject
Name Age Job Hobby ---- --- --- ----- Arthas 10 Student Reading
但是当我定义的属性超过4个,它就变成纵向输出了,如下:
$psobject=New-Object psobject $psobject|Add-Member noteproperty "Name" "Arthas" $psobject|Add-Member noteproperty "Age" "10" $psobject|Add-Member noteproperty "Job" "Student" $psobject|Add-Member noteproperty "Hobby" "Reading" $psobject|Add-Member noteproperty "Pet" "Dog" $psobject
Name : Arthas Age : 10 Job : Student Hobby : Reading Pet : Dog
如果添加ft -autosize,可以实现同排输出。
$psobject=New-Object psobject $psobject|Add-Member noteproperty "Name" "Arthas" $psobject|Add-Member noteproperty "Age" "10" $psobject|Add-Member noteproperty "Job" "Student" $psobject|Add-Member noteproperty "Hobby" "Reading" $psobject|Add-Member noteproperty "Pet" "Dog" $psobject|ft -AutoSize
Name Age Job Hobby Pet ---- --- --- ----- --- Arthas 10 Student Reading Dog
然而在需要循环输出结果的时候,这样会造成格式的混乱,每输出一次都会输出上面的title,如下:
for($i=0;$i -lt 2;$i++){
$psobject=New-Object psobject
$psobject|Add-Member noteproperty "Name" "Arthas"
$psobject|Add-Member noteproperty "Age" "10"
$psobject|Add-Member noteproperty "Job" "Student"
$psobject|Add-Member noteproperty "Hobby" "Reading"
$psobject|Add-Member noteproperty "Pet" "Dog"
$psobject|ft -AutoSize
}
Name Age Job Hobby Pet ---- --- --- ----- --- Arthas 10 Student Reading Dog Name Age Job Hobby Pet ---- --- --- ----- --- Arthas 10 Student Reading Dog
怎样让4个以上的属性可以在循环中同排输出呢?
1 Answers
# 第一种
for($i=0;$i -lt 6;$i++){
$psobject=New-Object psobject
$psobject|Add-Member noteproperty "Name" "Arthas"
$psobject|Add-Member noteproperty "Age" "10"
$psobject|Add-Member noteproperty "Job" "Student"
$psobject|Add-Member noteproperty "Hobby" "Reading"
$psobject|Add-Member noteproperty "Pet" "Dog"
if($i -eq 0){ $psobject | ft -AutoSize }
else { $psobject | ft -AutoSize -HideTableHeaders}
}
#更推荐第二种,先保存结果然后在输出
$result = @()
for($i=0;$i -lt 6;$i++){
$psobject=New-Object psobject
$psobject|Add-Member noteproperty "Name" "Arthas"
$psobject|Add-Member noteproperty "Age" "10"
$psobject|Add-Member noteproperty "Job" "Student"
$psobject|Add-Member noteproperty "Hobby" "Reading"
$psobject|Add-Member noteproperty "Pet" "Dog"
$result += $psobject
}
$result |ft -AutoSize
cool!多谢多谢
