Question
Probleme alim variable via import CSV
- laucaz
-
Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 48
- Remerciements reçus 0
il y a 13 ans 1 mois #14575
par laucaz
Probleme alim variable via import CSV a été créé par laucaz
Bonjour à tous,
J'ai un p'tit soucis d'alimentation de variable via l'import d'un CSV.
L'import se passe correctement et j'ai bien mon CSV dans ma variable d'import (cf copie ecran : )
1/ j'importe mes fichiers CSV
[code:1]##############################################################
# Import des fichiers de parametres
##############################################################
# Import du CSV determinant l'arborescence à créer
# import du fichier 1_Arbo.csv contenant les repertoires à créer
#$ImportArbo = Import-Csv $courant\1_Arbo.csv -delimiter \";\"
# pour debug
$ImportArbo = Import-Csv $RepCSV\1_Arbo.csv -delimiter \";\"
# Import du CSV determinant les ACL à poser
# import du fichier 2_ACL.csv contenant les ACL à poser sur les repertoires
# $ImportACL = Import-Csv $courant\2_ACL.csv -delimiter \";\"
# pour debug
$ImportACL = Import-Csv $RepCSV\2_ACL.csv -delimiter \";\"
# Import du CSV determinant les fichiesr à copier
# import du fichier 3_Peuplement.csv contenant les objets à copier dans les repertoires
# $ImportPeupl = Import-Csv $courant\3_Peuplement.csv -delimiter \";\"
# pour debug
$ImportPeupl = Import-Csv $RepCSV\3_Peuplement.csv -delimiter \";\"[/code:1]
2/ dans ma fonction j'initialise mon compteur et je compte mes lignes dans mon CSV
[code:1] # initialisation du compteur
$a = 0
# numero de ligne
$NumLigne = $ImportArbo.Ordre[/code:1]
3/ je boucle sur mon import jusqu'à ce que le nombre de ligne soit atteint
[code:1] foreach($line in $ImportACL)
{
# tant qu'on a pas atteint le nombre de ligne, on boucle
if($a -le $b)
{
# on selectionne les infos \"ServCible\" et \"Repertoire\"
$MachCible=$ImportACL.ServCible
$RacineBrut=$ImportACL.RACINE
$CtrlTotal=$ImportACL.Fullcontrol
$Modification=$ImportACL.modify
$Lecture=$ImportACL.read
[/code:1]
j'ai trois fonctions qui fonctionnent toutes 3 de la meme manière : La première crée l'arborescence à partir d'un CSV \"1_...\", la seconde applique les ACL à partir d'un CSV \"2_...\", la troisieme peuple l'arborescence à partir d'un CSV \"3_...\".
La premire fonction de creation de l'arbo fonctionne parfaitement.
Mais sur la seconde, mes variables \"$MachCible\", \"$RacineBrut\", \"$CtrlTotal\",... ne s'alimentent pas GRRRRRRRR
La copie d'ecran que je joins montre que me csv est correctement importé et que les informations sont disponibles ...
Question :
le nom de mes fichiers CSV peut il perturber sachant que la première fonction ... fonctionne
?
Au lieu d'importer mes 3 CSV au debut faudrait-il que je les importe à chaque debut de fonction ? sachant que quand j'affiche la valeur de ma variable stockant le resultat de l'import j'ai bien mes données ?
Me posais-je les bonnes question ????
@ vous lire
Laurent<br><br>Message édité par: titou4, à: 15/04/13 15:07
J'ai un p'tit soucis d'alimentation de variable via l'import d'un CSV.
L'import se passe correctement et j'ai bien mon CSV dans ma variable d'import (cf copie ecran : )
1/ j'importe mes fichiers CSV
[code:1]##############################################################
# Import des fichiers de parametres
##############################################################
# Import du CSV determinant l'arborescence à créer
# import du fichier 1_Arbo.csv contenant les repertoires à créer
#$ImportArbo = Import-Csv $courant\1_Arbo.csv -delimiter \";\"
# pour debug
$ImportArbo = Import-Csv $RepCSV\1_Arbo.csv -delimiter \";\"
# Import du CSV determinant les ACL à poser
# import du fichier 2_ACL.csv contenant les ACL à poser sur les repertoires
# $ImportACL = Import-Csv $courant\2_ACL.csv -delimiter \";\"
# pour debug
$ImportACL = Import-Csv $RepCSV\2_ACL.csv -delimiter \";\"
# Import du CSV determinant les fichiesr à copier
# import du fichier 3_Peuplement.csv contenant les objets à copier dans les repertoires
# $ImportPeupl = Import-Csv $courant\3_Peuplement.csv -delimiter \";\"
# pour debug
$ImportPeupl = Import-Csv $RepCSV\3_Peuplement.csv -delimiter \";\"[/code:1]
2/ dans ma fonction j'initialise mon compteur et je compte mes lignes dans mon CSV
[code:1] # initialisation du compteur
$a = 0
# numero de ligne
$NumLigne = $ImportArbo.Ordre[/code:1]
3/ je boucle sur mon import jusqu'à ce que le nombre de ligne soit atteint
[code:1] foreach($line in $ImportACL)
{
# tant qu'on a pas atteint le nombre de ligne, on boucle
if($a -le $b)
{
# on selectionne les infos \"ServCible\" et \"Repertoire\"
$MachCible=$ImportACL.ServCible
$RacineBrut=$ImportACL.RACINE
$CtrlTotal=$ImportACL.Fullcontrol
$Modification=$ImportACL.modify
$Lecture=$ImportACL.read
[/code:1]
j'ai trois fonctions qui fonctionnent toutes 3 de la meme manière : La première crée l'arborescence à partir d'un CSV \"1_...\", la seconde applique les ACL à partir d'un CSV \"2_...\", la troisieme peuple l'arborescence à partir d'un CSV \"3_...\".
La premire fonction de creation de l'arbo fonctionne parfaitement.
Mais sur la seconde, mes variables \"$MachCible\", \"$RacineBrut\", \"$CtrlTotal\",... ne s'alimentent pas GRRRRRRRR
La copie d'ecran que je joins montre que me csv est correctement importé et que les informations sont disponibles ...
Question :
le nom de mes fichiers CSV peut il perturber sachant que la première fonction ... fonctionne
Au lieu d'importer mes 3 CSV au debut faudrait-il que je les importe à chaque debut de fonction ? sachant que quand j'affiche la valeur de ma variable stockant le resultat de l'import j'ai bien mes données ?
Me posais-je les bonnes question ????
@ vous lire
Laurent<br><br>Message édité par: titou4, à: 15/04/13 15:07
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 13 ans 1 mois #14576
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:Probleme alim variable via import CSV
Salut,
je ne comprends pas cette partie de ton code :
[code:1]
foreach($line in $ImportACL)
{
if($a -le $b)
{
# on selectionne les infos \"ServCible\" et \"Repertoire\"
$MachCible=$ImportACL.ServCible
[/code:1]
A quoi sert la variable $Line ?
je ne comprends pas cette partie de ton code :
[code:1]
foreach($line in $ImportACL)
{
if($a -le $b)
{
# on selectionne les infos \"ServCible\" et \"Repertoire\"
$MachCible=$ImportACL.ServCible
[/code:1]
A quoi sert la variable $Line ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- laucaz
-
Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 48
- Remerciements reçus 0
il y a 13 ans 1 mois #14577
par laucaz
Réponse de laucaz sur le sujet Re:Probleme alim variable via import CSV
... effectivement avec la suite du code ce sera peut-etre plus clair
[code:1] # On applique les ACL
$acl = Get-Acl -Path \"$MachCible\$RacineNet\"
$inherit = [system.security.accesscontrol.InheritanceFlags]\"ContainerInherit, ObjectInherit\"
$propagation = [system.security.accesscontrol.PropagationFlags]\"None\"
$acl = Get-Acl -Path \"$MachCible\$RacineNet\"
# Control Total
$ar = New-Object system.security.accesscontrol.filesystemaccessrule($CtrlTotal,\"FullControl\",$inherit,$propagation,\"Allow\"«»)
$acl.SetAccessRule($ar)
Set-Acl -Path \"$MachCible\$RacineNet\" $acl
# Modification
$ar = New-Object system.security.accesscontrol.filesystemaccessrule($Modification,\"Modify\",$inherit,$propagation,\"Allow\"«»)
$acl.SetAccessRule($ar)
Set-Acl -Path \"$MachCible\$RacineNet\" $acl
# Lecture
$ar = New-Object system.security.accesscontrol.filesystemaccessrule($Lecture,\"Read\",$inherit,$propagation,\"Allow\"«»)
$acl.SetAccessRule($ar)
Set-Acl -Path \"$MachCible\$RacineNet\" $acl[/code:1]
pour que l'ecriture soit plus simple je variabilise chaque categorie de donnée (import.cible, import.fullaccess, ...) de chaque ligne (d'où le Foreach)...
Je ne suis pas tres sur des syntaxe genre \"Get-Acl -Path \"$MachCible\$RacineNet\"\" mais quoiqu'il en soit avant d'arriver là les variables ne se valorisent pas.
Se qui est surprenant c'est que j'ai une fonction de creation de l'arbo construite sur le meme modele qui elle fonctionne parfaitement...
J'espère t'avoir eclairé un peu
Cordialement
Laurent
[code:1] # On applique les ACL
$acl = Get-Acl -Path \"$MachCible\$RacineNet\"
$inherit = [system.security.accesscontrol.InheritanceFlags]\"ContainerInherit, ObjectInherit\"
$propagation = [system.security.accesscontrol.PropagationFlags]\"None\"
$acl = Get-Acl -Path \"$MachCible\$RacineNet\"
# Control Total
$ar = New-Object system.security.accesscontrol.filesystemaccessrule($CtrlTotal,\"FullControl\",$inherit,$propagation,\"Allow\"«»)
$acl.SetAccessRule($ar)
Set-Acl -Path \"$MachCible\$RacineNet\" $acl
# Modification
$ar = New-Object system.security.accesscontrol.filesystemaccessrule($Modification,\"Modify\",$inherit,$propagation,\"Allow\"«»)
$acl.SetAccessRule($ar)
Set-Acl -Path \"$MachCible\$RacineNet\" $acl
# Lecture
$ar = New-Object system.security.accesscontrol.filesystemaccessrule($Lecture,\"Read\",$inherit,$propagation,\"Allow\"«»)
$acl.SetAccessRule($ar)
Set-Acl -Path \"$MachCible\$RacineNet\" $acl[/code:1]
pour que l'ecriture soit plus simple je variabilise chaque categorie de donnée (import.cible, import.fullaccess, ...) de chaque ligne (d'où le Foreach)...
Je ne suis pas tres sur des syntaxe genre \"Get-Acl -Path \"$MachCible\$RacineNet\"\" mais quoiqu'il en soit avant d'arriver là les variables ne se valorisent pas.
Se qui est surprenant c'est que j'ai une fonction de creation de l'arbo construite sur le meme modele qui elle fonctionne parfaitement...
J'espère t'avoir eclairé un peu
Cordialement
Laurent
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 13 ans 1 mois #14578
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:Probleme alim variable via import CSV
titou4 écrit:
Essaie avec ceci :
[code:1]
Set-StrictMode -version latest
# test de ton code...
Set-StrictMode -Off
[/code:1]
Il te faudra surement initialiser des variables qui ne le sont pas.
Non.J'espère t'avoir eclairé un peu
Essaie avec ceci :
[code:1]
Set-StrictMode -version latest
# test de ton code...
Set-StrictMode -Off
[/code:1]
Il te faudra surement initialiser des variables qui ne le sont pas.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- laucaz
-
Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 48
- Remerciements reçus 0
il y a 13 ans 1 mois #14579
par laucaz
Réponse de laucaz sur le sujet Re:Probleme alim variable via import CSV
... toutes mes excuses Laurent dans ta reponse je n'avais pas vu ça
... pas bon de faire trop de choses en meme temps.
En fait je n'arrivais pas à lui faire lire toutes mes ligne successivement donc pour la fonction précédente j'avais ajouté une colonne dans mon CSV avec un nombre successif (1,2,3,...) permetant de rendre chaque ligne unique (comme une clef index unique dans une base de donnée). et donc mon \"foreach\" ressemble à ça
[code:1]foreach($ImportArbo.Ordre in $ImportArbo)[/code:1]
Donc sur la seconde fonction qui ne marche pas, je me suis inspirée d'un script d'un collègue dans laquelle il faisait reference à une variable \"$line\"... d'où mon erreur.
Il y a surement une façon de faire moins \"bricolage\"... Quoiqu'il en soit je vais corriger mes CSV en entrée pour qu'ils aient tous une ligne \"N° d'ordre\" et retester...
Merci pour ton oeuil
Cordialement
Laurent
A quoi sert la variable $Line ?
... pas bon de faire trop de choses en meme temps.
En fait je n'arrivais pas à lui faire lire toutes mes ligne successivement donc pour la fonction précédente j'avais ajouté une colonne dans mon CSV avec un nombre successif (1,2,3,...) permetant de rendre chaque ligne unique (comme une clef index unique dans une base de donnée). et donc mon \"foreach\" ressemble à ça
[code:1]foreach($ImportArbo.Ordre in $ImportArbo)[/code:1]
Donc sur la seconde fonction qui ne marche pas, je me suis inspirée d'un script d'un collègue dans laquelle il faisait reference à une variable \"$line\"... d'où mon erreur.
Il y a surement une façon de faire moins \"bricolage\"... Quoiqu'il en soit je vais corriger mes CSV en entrée pour qu'ils aient tous une ligne \"N° d'ordre\" et retester...
Merci pour ton oeuil
Cordialement
Laurent
Connexion ou Créer un compte pour participer à la conversation.
- laucaz
-
Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 48
- Remerciements reçus 0
il y a 13 ans 1 mois #14580
par laucaz
Réponse de laucaz sur le sujet Re:Probleme alim variable via import CSV
... ca fonctionne
))
Merci à toi
Laurent
Merci à toi
Laurent
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.048 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Probleme alim variable via import CSV