J'essaie de supprimer les lignes vides avant et après la sortie mais cela ne fonctionne tout simplement pas. J'ai essayé d'ajouter -NoNewLine après le tout premier hôte d'écriture, mais cela ne supprime qu'une seule ligne vierge jusqu'à présent.
Code:
$tag1 = "c91638"
Write-Host "Operating System Information"
$OSInfo = get-wmiobject -class win32_operatingsystem -computername $tag1
$OSInfo `
| Format-List `
@{Name="OS Name";Expression={$_.Caption}},
@{Name="OS Boot Time";Expression={$_.ConvertToDateTime($_.LastBootUpTime)}},
@{Name="OS Install Date";Expression={$_.ConvertToDateTime($_.InstallDate)}};
Write-Host "Line test.."
Sorties:
Operating System Information
OS Name : Microsoft Windows 7 Enterprise
OS Boot Time : 8/27/2015 2:05:35 AM
OS Install Date : 4/4/2014 11:39:15 AM
Line test..
Ce que je veux faire:
Operating System Information
OS Name : Microsoft Windows 7 Enterprise
OS Boot Time : 8/27/2015 2:05:35 AM
OS Install Date : 4/4/2014 11:39:15 AM
Line test..
Essayez plutôt ceci:
($OSInfo `
| Format-List `
@{Name="OS Name";Expression={$_.Caption}},
@{Name="OS Boot Time";Expression={$_.ConvertToDateTime($_.LastBootUpTime)}},
@{Name="OS Install Date";Expression={$_.ConvertToDateTime($_.InstallDate)}} `
| Out-String).Trim()
Cela nettoiera toutes les lignes vierges étrangères produites par Format-List
. Vous devrez peut-être en insérer quelques-unes que vous pourrez contrôler.
Juste pour ajouter une remarque, car je vois que cela se fait tout le temps, même maintenant - Format-List
et Format-Table
devrait niquement être utilisé pour afficher du texte dans la console.
Si vous avez des objets à exporter sous forme de fichiers texte, CSV, etc., vous devez simplement Select-Object
pour saisir les objets souhaités plutôt que ft
ou fl
. Ensuite, vous pouvez appliquer votre Out-String
si la mise en forme du texte est requise.
L'exemple ci-dessus devrait être:
($OSInfo `
| Select-Object `
@{Name="OS Name";Expression={$_.Caption}},
... `
| Out-String).Trim()