web-dev-qa-db-fra.com

Supprimer les lignes vides dans la sortie PowerShell

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..
10
Aaron

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.

19
Kev

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()
4
Trix