Hello all !
Je suis actuellement sur un script et je patauge un peu pour une partie de celui-ci.
Je cherche à ajouter des valeurs d'une commande dans un tableau de ce type :
Voici le code permettant cela :
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 29 30 31 32 33 34 35
| #Déclaration des variables
$server = "192.168.12.13"
$sftpsession = New-SFTPsession -ComputerName $server -Credential root
$source = "/tmp/backups/"
$date = Get-Date -Uformat "%Y%m%d%H%M"
#Création tableau
$table = New-Object system.Data.DataTable
$col1 = New-Object system.Data.DataColumn zip,([object])
$col2 = New-Object system.Data.DataColumn hash,([object])
$table.columns.add($col1)
$table.columns.add($col2)
$row = $table.NewRow()
# Mettre éléments dans le tableau
foreach ($file in (Get-SFTPChildItem $sftpsession -Path $source | Where-Object {$_.Name -notlike "*."} | Sort-Object)) {
If ($file.Name -like "*.zip"){
$row.zip = $file.Name
}
Elseif ($file.Name -like "*.txt") {
$row.hash = $file.Name
}
$table.Rows.Add($row)
} |
Globalement ça marche plutôt bien, voici le résultat :
PS C:\Users\Administrator\Desktop> $table
zip hash
--- ----
test2.zip test2.txt
Sauf qu'il ne met pas de ligne pour le test1.zip et test1.txt voici le message d'erreur :
1 2 3 4 5 6
| Exception calling "Add" with "1" argument(s): "This row already belongs to this table."
At C:\Users\Administrator\Desktop\script automatisation.ps1:35 char:5
+ $table.Rows.Add($row)
+ ~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : ArgumentException |
Je comprends qu'il est pas content car la ligne existe déjà mais j'ai tenté de mettre la ligne $row = $table.NewRow() après la boucle ou pendant. Plus d'erreur mais cela donne ça :
1 2 3 4 5 6
| zip hash
--- ----
test1.txt
test1.zip
test2.txt
test2.zip |
Si vous avez une idée je suis preneur :)
Merci d'avance !
Bon week-end.
Partager