Question Export-CSV

Plus d'informations
il y a 10 ans 5 mois #20843 par Rémi
Export-CSV a été créé par Rémi
Bonjour,

J'aurais besoin de votre aide, car je ne sais plus du tout par où chercher.

Le but de mon script est d'extraire des données vers un fichier excel (dans mon exemple, compter le nombre de sauts (sous-dossiers) jusqu'à un fichier et si il y a trop de sauts, le renseigner dans un excel)
Tout va bien jusqu'au moment où j'ouvre mon fichier excel : Il ne m'affiche qu'une colonne Length avec des valeurs à l'intérieur au lieu de m'afficher ce que je voulais !

Voici mon code :
[code:1]Function testChemin
{
param ([string]$path)

$sautCSV = New-Object PSObject

$nbrSauts = 0
$nbrSauts = $path.ToString().Split('\\').Count
$nbrSauts = $nbrSauts - 1

if($nbrSauts -gt \"3\"«»)
{
Write-Output $path
$sautCSV | Add-Member -MemberType NoteProperty -Name \"Probleme\" -Value \"Trop de sauts\"
$sautCSV | Add-Member -MemberType NoteProperty -Name \"Element concerne\" -Value \"$path\"

exportCSV($sautCSV)
}
}
Function exportCSV
{
param([string]$ajout)

#$result = @()
#$result += New-Object PSObject -Property $ajout
#$result += $ajout
$ajout | Export-Csv -Append testChemin.csv -NoTypeInformation
}
$path = \"c:\voici\un\test\de\sauts\"
testChemin($path)[/code:1]

J'ai volontairement laissé en commentaire certaines choses dans la fonction exportCSV pour vous montrer que j'ai tout de même tenter d'explorer plusieurs pistes.

Je n'arrive pas à comprendre pourquoi ça ne sort pas ce que je veux :(.

En espérant que vous puissiez m'aider !

Merci d'avance :)<br><br>Message édité par: EagleWatch, à: 9/10/15 14:32

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 5 mois #20844 par Philippe
Réponse de Philippe sur le sujet Re:Export-CSV
salut EagleWatch

dés fois je donne pas la réponse mais seulement comment comprendre le problème.

alors regarde ici :

[code:1] param([string]$ajout)[/code:1]

et ça :

[code:1]
$sautCSV.GetType()

IsPublic IsSerial Name BaseType

----
True False PSCustomObject System.Object

################

$sautCSV | gm


TypeName : System.Management.Automation.PSCustomObject

Name MemberType Definition
----

Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Element concerne NoteProperty System.String Element concerne=c:\voici\un\test\de\sauts
Probleme NoteProperty System.String Probleme=Trop de sauts [/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 5 mois #20845 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Export-CSV
Salut,
modifie ceci
[code:1]
exportCSV($sautCSV)
...
testChemin($path)
[/code:1]
en
[code:1]
exportCSV $sautCSV
...
testChemin $path
[/code:1]
Puis ceci:
[code:1]
Function exportCSV
{
param([string]$ajout)
[/code:1]
en
[code:1]
Function exportCSV{
param([PsObject] $ajout)
[/code:1]
Sinon tu transformes ton objet en une string qui n'a qu'une propriété, je te laisse deviner laquelle :P

Il y aurait d'autres points à améliorer, mais à chaque jour suffit sa peine :) .

{edit]
Too late<br><br>Message édité par: Laurent Dardenne, à: 9/10/15 16:21

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 5 mois #20847 par Rémi
Réponse de Rémi sur le sujet Re:Export-CSV
Merci !!!

J'ai presque honte ! Quand j'ai lu que l'erreur se situait à param ([string]$ajout) j'ai tout de suite compris !

Merci, du coup ça fonctionne parfaitement !

@Laurent Dardenne : Par contre, je sais que c'est pas le sujet, mais pourquoi pas me MP là où tu penses qu'il faudrait des améliorations pour voir si je peux effectivement l'améliorer .
Je ne cherche qu'à m'améliorer moi-même =D

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 5 mois #20848 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Export-CSV
EagleWatch écrit:

mais pourquoi pas me MP là où tu penses qu'il faudrait des améliorations

Il n'y a pas de message privé sur ce site.
Et d'énoncer les améliorations nécessite du temps tout simplement.
Pour moi la fonction exportCSV est ici inutile, ceci est préférable :
[code:1]testChemin|export-csv[/code:1]
avec :
[code:1]$sautCSV | Add-Member -MemberType NoteProperty -Name \&quot;Probleme\&quot; -Value \&quot;Trop de sauts\&quot; -Passthru
Add-Member -MemberType NoteProperty -Name \&quot;Element concerne\&quot; -Value $path -Passthru
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 10/10/15 11:39

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 5 mois #20852 par Rémi
Réponse de Rémi sur le sujet Re:Export-CSV
Effectivement, je n'avais pas vu que la fonction MP n'était pas présente !

Sinon, le bout de script que j'ai mis ici n'est pas complet, je mets d'autres informations dans mon fichier CSV d'où le fait que j'ai fait une fonction CSV.

Le but du script est de repérer les fichiers trop long et/ou qui contiennent des mots ou caractères interdits (style \&quot;COM\&quot; ou \&quot;?\&quot;) et de rentrer les informations dans un fichier CSV.

Par contre, mon autre problème est que je ne sais absolument pas comment ajouter des informations dans mon fichier CSV.
En PowerShell V3 et plus il y a -Append, le problème est que le script doit pouvoir fonctionner dans du PowerShell V2 maximum.

Ce qu'il faudrait, c'est que chaque fois que je fais un appel à la fonction CSV, il ajoute les informations dans le fichier CSV s'il existe.

Sauf que l'ajout me pose problème. Je ne parviens pas à trouver de réponses claires sur internet. Je pense qu'il y a des solutions, mais je ne les comprends pas car pas ou peu d'explications, du coup j'ai pas envie de copier bêtement.
Donc si jamais quelqu'un parvient à m'expliquer, je ne dirai pas non =D.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.052 secondes
Propulsé par Kunena