Meilleur auteur de réponses
Erreur Export-Csv TYPE System.object[]

Question
-
Bonjour,
J'ai une erreur que je ne comprends pas lorsque je lance mon script powershell pour exporter mon tableau sur mon fichier excel
j'ai une erreur qui s'écrit system.object.
Pourriez-vous m'aider s'il vous plaît ?
Je vous remercie d'avance pour votre aide.
gabriel
Réponses
-
salut Gabriel_906
tu avais plusieurs problèmes, mais principalement pour ta question c'etait ici : $EspaceDisque.'Disponible (Go)'
apres j'ai rajouter un filtre sur le lecteur sur lequel travail le script where{$_.drivetype -eq3-and$_.DeviceID -eq(Split-Path$dossier-Qualifier)}
j'ai enlever quelles instructions inutile et je crois que c'est tous
dis bous si c'est bon :)
$dossier = "I:\temp" $Niveau = 3 $resultat = @() $SubFolders = (Get-ChildItem -path $dossier -recurse -Directory -Depth $($niveau-1)).FullName foreach ($subfolder in $SubFolders) { $FolderSize = Get-ChildItem -path $SubFolder -Recurse -File | Measure-Object -property length -sum $FolderNumberOfFile = (Get-ChildItem -path $SubFolder -Recurse -File).count $EspaceDisque = get-wmiobject win32_logicaldisk | where {$_.drivetype -eq 3 -and $_.DeviceID -eq (Split-Path $dossier -Qualifier)} | tee-object -variable disques | select-object @{e={$_.systemname};n="Système"}, @{e={$_.name};n="Disque"}, @{e={[math]::round($_.freespace/1GB,1)};n="Disponible (Go)"}, @{e={[math]::round(([int64]$_.freespace/[int64]$_.size*100),0)};n="% restant"} $resultat += New-Object -TypeName PSObject -Property @{ Partage = $subfolder NbDeFichier = $FolderNumberOfFile Volume = $foldersize.sum / 1mb Espace = $EspaceDisque.'Disponible (Go)' } } $resultat | Sort-Object -Property Partage | select-object Partage, NbDeFichier, Volume, Espace | Export-Csv Random.csv -Delimiter ";" -NoTypeInformation
- Marqué comme réponse Gabriel_906 mardi 16 octobre 2018 08:20
Toutes les réponses
-
-
-
$dossier ="C:\"
$Niveau = 3
$resultat=@()
$SubFolders = (Get-ChildItem -path $dossier -recurse -Directory -Depth $($niveau-1)).FullName
foreach ($subfolder in $SubFolders)
{
$FolderSize = Get-ChildItem -path $SubFolder -Recurse -File | Sort-Object length -descending | select-object | Measure-Object -property length -sum
$FolderNumberOfFile = (Get-ChildItem -path $SubFolder -Recurse -File).count
$EspaceDisque = get-wmiobject win32_logicaldisk | where {$_.drivetype -eq 3} |
tee-object -variable disques |
select-object @{e={$_.systemname};n="Système"},
@{e={$_.name};n="Disque"},
@{e={[math]::round($_.freespace/1GB,1)};n="Disponible (Go)"},
@{e={[math]::round(([int64]$_.freespace/[int64]$_.size*100),0)};n="% restant"}
$resultat+= New-Object -TypeName PSObject -Property @{
Partage = $subfolder
NbDeFichier= $FolderNumberOfFile
Volume = $foldersize.sum / 1mb
Espace = $EspaceDisque
}
}
$resultat | Sort-Object -Property path | select-object Partage,NbDeFichier,Volume,Espace | Export-Csv Random.csv -Delimiter ";" -NoTypeInformation
#Get-Content -Path "repertoire.csv"
Le problème c'est que lorsque je souhaite l'exporter en CSV "ESPACE" s'affiche System.object[]
gabriel
-
Bonjour,
J'ai un simple Powershell en trois étapes qui exécute deux commandes, puis les concatène dans un tableau.
Lorsque je l'exécute sans Export-CSV, tout se passe bien, mais lorsque j'ajoute Export-CSV, je reçois.
#TYPE System.Object []$dossier ="C:\"
$Niveau = 3
$resultat=@()
$SubFolders = (Get-ChildItem -path $dossier -recurse -Directory -Depth $($niveau-1)).FullName
foreach ($subfolder in $SubFolders)
{
$FolderSize = Get-ChildItem -path $SubFolder -Recurse -File | Sort-Object length -descending | select-object | Measure-Object -property length -sum
$FolderNumberOfFile = (Get-ChildItem -path $SubFolder -Recurse -File).count
$EspaceDisque = get-wmiobject win32_logicaldisk | where {$_.drivetype -eq 3} |
tee-object -variable disques |
select-object @{e={$_.systemname};n="Système"},
@{e={$_.name};n="Disque"},
@{e={[math]::round($_.freespace/1GB,1)};n="Disponible (Go)"},
@{e={[math]::round(([int64]$_.freespace/[int64]$_.size*100),0)};n="% restant"}
$resultat+= New-Object -TypeName PSObject -Property @{
Partage = $subfolder
NbDeFichier= $FolderNumberOfFile
Volume = $foldersize.sum / 1mb
Espace = $EspaceDisque
}
}
$resultat | Sort-Object -Property path | select-object Partage,NbDeFichier,Volume,Espace | Export-Csv Random.csv -Delimiter ";" -NoTypeInformation
#Get-Content -Path "repertoire.csv"
gabriel
-
salut Gabriel_906
tu avais plusieurs problèmes, mais principalement pour ta question c'etait ici : $EspaceDisque.'Disponible (Go)'
apres j'ai rajouter un filtre sur le lecteur sur lequel travail le script where{$_.drivetype -eq3-and$_.DeviceID -eq(Split-Path$dossier-Qualifier)}
j'ai enlever quelles instructions inutile et je crois que c'est tous
dis bous si c'est bon :)
$dossier = "I:\temp" $Niveau = 3 $resultat = @() $SubFolders = (Get-ChildItem -path $dossier -recurse -Directory -Depth $($niveau-1)).FullName foreach ($subfolder in $SubFolders) { $FolderSize = Get-ChildItem -path $SubFolder -Recurse -File | Measure-Object -property length -sum $FolderNumberOfFile = (Get-ChildItem -path $SubFolder -Recurse -File).count $EspaceDisque = get-wmiobject win32_logicaldisk | where {$_.drivetype -eq 3 -and $_.DeviceID -eq (Split-Path $dossier -Qualifier)} | tee-object -variable disques | select-object @{e={$_.systemname};n="Système"}, @{e={$_.name};n="Disque"}, @{e={[math]::round($_.freespace/1GB,1)};n="Disponible (Go)"}, @{e={[math]::round(([int64]$_.freespace/[int64]$_.size*100),0)};n="% restant"} $resultat += New-Object -TypeName PSObject -Property @{ Partage = $subfolder NbDeFichier = $FolderNumberOfFile Volume = $foldersize.sum / 1mb Espace = $EspaceDisque.'Disponible (Go)' } } $resultat | Sort-Object -Property Partage | select-object Partage, NbDeFichier, Volume, Espace | Export-Csv Random.csv -Delimiter ";" -NoTypeInformation
- Marqué comme réponse Gabriel_906 mardi 16 octobre 2018 08:20
-