2016-03-30 2 views
0

Comment puis-je sélectionner uniquement la première ligne (nom) de cette sortie dans PowerShell? OutputSélectionnez uniquement la première ligne de la sortie

Le code est celui-ci:

1. Import-Module "C:\CMI\Entwicklung\MetaTool\packages\psake.4.5.0\tools\psake.psm1" 
2. invoke-psake -buildFile "C:\CMI\Entwicklung\MetaTool\Build\default.ps1" -docs; 

Je veux avoir seulement les noms de cette liste.

Merci!

Répondre

0

redirigez la sortie pour sélectionner objet:

Import-Module "C:\CMI\Entwicklung\MetaTool\packages\psake.4.5.0\tools\psake.psm1" 
invoke-psake -buildFile "C:\CMI\Entwicklung\MetaTool\Build\default.ps1" -docs | select Name 

Modifier

$a = Invoke-psake default.ps1 

$a 
psake version 4.6.0 
Copyright (c) 2010-2014 James Kovacs & Contributors 

Executing Clean 
Executed Clean! 
Executing Compile 
Executed Compile! 
Executing Test 
Executed Test! 

Build Succeeded! 

---------------------------------------------------------------------- 
Build Time Report 
---------------------------------------------------------------------- 
Name Duration   
---- --------   
Clean 00:00:00.0193100 
Compile 00:00:00.0148280 
Test 00:00:00.0169533 
Total: 00:00:00.1112917 


$b=($a | select-string ":").count-1; ($a | Select-String ":") -replace "\d{2}\:\d{2}:\d{2}.\d{7}"| select -First $b 
Clean 
Compile 
Test  
+0

j'ai essayé cela, mais cela ne fonctionne pas. La sortie est vide (uniquement l'en-tête) ... –

+0

Affectez la sortie à un type var et get ist: '$ a = invoke .....; $ a.gettype() 'Cela vous donnera une idée, quel type de données est, et si nous pouvons utiliser des instructions select. – Martin

+0

La variable est un System.Array. Voici les types de chaque valeur dans le tableau: 1 + 2 = Microsoft.PowerShell.Commands.Internal.Format.StartData 3 - 9 = Microsoft.PowerShell.Commands.Internal.Format.PacketInfoData –