Question
Export-CSV
- Rémi
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
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
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
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
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]
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 10 ans 5 mois #20845
par Laurent Dardenne
Tutoriels PowerShell
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
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
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
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.
- Rémi
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
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
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 10 ans 5 mois #20848
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Export-CSV
EagleWatch écrit:
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 \"Probleme\" -Value \"Trop de sauts\" -Passthru
Add-Member -MemberType NoteProperty -Name \"Element concerne\" -Value $path -Passthru
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 10/10/15 11:39
Il n'y a pas de message privé sur ce site.mais pourquoi pas me MP là où tu penses qu'il faudrait des améliorations
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 \"Probleme\" -Value \"Trop de sauts\" -Passthru
Add-Member -MemberType NoteProperty -Name \"Element concerne\" -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.
- Rémi
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
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 \"COM\" ou \"?\") 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.
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 \"COM\" ou \"?\") 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.050 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Export-CSV