Bonjour,
Je vais mettre tes données dans un "tableau" $tab pour commencer, ce qui me permettra de répondre à ta question.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| $tab = @()
$tab += New-Object PSCustomObject -Property @{
Serveur = "SRV1";
Appli = "test";
début = [datetime] "06/12/2016 04:02:00";
Fin = [datetime] "06/12/2016 04:07:21";
total = "00:05:21"}
$tab += New-Object PSCustomObject -Property @{
Serveur = "SRV1";
Appli = "test";
début = [datetime] "06/12/2016 10:30:00";
Fin = [datetime] "06/12/2016 10:36:06";
total = "00:06:06"}
$tab += New-Object PSCustomObject -Property @{
Serveur = "SRV2";
Appli = "test2";
début = [datetime] "06/12/2016 04:01:00";
Fin = [datetime] "06/12/2016 04:05:18";
total = "00:04:18"}
$tab += New-Object PSCustomObject -Property @{
Serveur = "SRV2";
Appli = "test2";
début = [datetime] "06/12/2016 10:30:00";
Fin = [datetime] "06/12/2016 10:35:45";
total = "00:05:45"} |
Il n'y à plus qu'a faire un regroupement sur 'Appli' et pour chacun de ces groupes prendre le dernier élément.
$tab | Group-Object -Property Appli | ForEach-Object {$_.Group | Select-Object -Last 1}
Vu la structure de tes données j'ai pensé que le dernier élément étaient toujours les plus récente. Mais si ce n'est pas le cas tu peux ajouter un tri sur la colonne de ton choix, exemple :
$tab | Group-Object -Property Appli | ForEach-Object {$_.Group | Sort-Object -Property début | Select-Object -Last 1}
@sachadee
Ça existe des choses qui sont plus simple à faire en .bat que powershell ? Quand il aura des caractères spéciaux on verra ça
Le tableau provient d'un fichier LOG ?
Partager