Question
Export vers XLS
- Jacques Barathon
- Hors Ligne
- Administrateur
- Messages : 576
- Remerciements reçus 0
As-tu un exemple précis montrant comment tu récupères tes données et quel format tu voudrais qu'elles aient dans le fichier final?
Janel
Connexion ou Créer un compte pour participer à la conversation.
- bordin
- Auteur du sujet
- Hors Ligne
- Membre premium
- Messages : 88
- Remerciements reçus 0
L'export au format CSV n'est pas très compatible avec l'idée même d'un formattage tel que tu le décris, puisque le format CSV est simplement une concaténation de champs séparés par une virgule.
As-tu un exemple précis montrant comment tu récupères tes données et quel format tu voudrais qu'elles aient dans le fichier final?
Janel
Salut Janel,
Comme exemple il y a:
Transformation de l'espace disque en Mo:
[code:1]get-content $args[0] | foreach {
gwmi win32_logicaldisk -filter \"DriveType=3\" -computer $_} |
format-table @{l=\"Nom\";e={$_.__Server}},
@{l=\"Volume\";e={$_.DeviceId}},
@{l=\"Total (Mo)\";e={[math]::round($_.Size/1MB«»)}},
@{l=\"Libre (Mo)\";e={[math]::round($_.FreeSpace/1MB«»)}} –a [/code:1]
Ping: ici je voudrais avoir le StatusCode à Success au lieu de 0 par exemple.
[code:1]foreach-object {
get-wmiobject -Class Win32_PingStatus -filter (\"Address='\" + $_ + \"'\"«»)
} | select Address,ProtocolAddress,StatusCode | export-csv $SortieCheckServeurs -notype -force[/code:1]
Message édité par: camilleB , à: 1/08/07 19:56<br><br>Message édité par: Arnaud, à: 1/08/07 22:31
Connexion ou Créer un compte pour participer à la conversation.
- bordin
- Auteur du sujet
- Hors Ligne
- Membre premium
- Messages : 88
- Remerciements reçus 0
C'est peut être une solution!
Rediriger la sortie de la console vers un fichier texte. Ensuite traiter chaque ligne du fichier en remplaçant les espaces par des virgules.
Ca devrait donner un bon fichier csv!
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
Et pourquoi pas ne pas renvoyer tout cela dans Word et convertir ensuite en PDF ?
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- bordin
- Auteur du sujet
- Hors Ligne
- Membre premium
- Messages : 88
- Remerciements reçus 0
C'est un peu tordu comme idée que de vouloir envoyer dans Excel un affichage de console. Pourrais tu nous expliquer quel en est l'intérêt ?
Et pourquoi pas ne pas renvoyer tout cela dans Word et convertir ensuite en PDF ?
Arnaud
Bonjour,
Ben je vois que je complique les choses!
En fait pour moi comme l'affichage des données à la console est déjà formatté comme je le souhaite. L'idée était de simplement tout reprendre sans plus. As tu déjà exporter vers word? Peux tu m'expliquer la démarche stp?
MErci
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
- Messages : 576
- Remerciements reçus 0
Sauf que format-table émet des objets de type FormatEntryData et que ces objets ne contiennent plus les données d'origine, ou alors sous une forme qui ne se prête pas facilement à l'exportation. Le but de toute commandelette format-* est de produire un résultat final valable pour un affichage, pas pour un traitement ultérieur.
La solution s'appelle select-object (ou select de son petit nom). Select permet d'extraire une partie des objets qu'on lui passe et de faire certaines manipulations avec. Entre autres, on peut modifier la présentation des propriétés d'une façon très proche de celle qu'on connaît avec format-table:
[code:1]PS> gwmi win32_logicaldisk |
>> select @{n=\"Nom\";e={$_.__Server}},
>> @{n=\"Volume\";e={$_.DevideID}},
>> @{n=\"Total (Mo)\";e={[math]::round($_.Size/1MB )}},
>> @{n=\"Libre (Mo)\";e={[math]::round($_.FreeSpace/1MB )}}
>>[/code:1]
Dans cet exemple, les deux principales différences avec format-table sont:
- le remplacement de l=\"nom\" par n=\"nom\". Dans format-table, \"l\" est un raccourci pour \"label\", ici le \"n\" est un raccourci pour \"name\".
- la suppression de -a à la fin. Select n'est pas fait pour formatter mais pour présenter les données, donc la notion de formattage \"auto\" n'a pas de sens.
Le résultat de la commande ci-dessus devrait être très proche de ce que tu obtiens avec format-table. La grosse différence, c'est que ce résultat-là est exportable dans un fichier CSV:
[code:1]PS> gwmi win32_logicaldisk |
>> select @{n=\"Nom\";e={$_.__Server}},
>> @{n=\"Volume\";e={$_.DevideID}},
>> @{n=\"Total (Mo)\";e={[math]::round($_.Size/1MB )}},
>> @{n=\"Libre (Mo)\";e={[math]::round($_.FreeSpace/1MB )}} |
>> export-csv LogicalDisks.csv -notype
>>[/code:1]Est-ce que c'est bien ce que tu cherches à faire?
Janel
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Export vers XLS