Question Script v3 non fonctionnel en v4
- usopp
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 34
- Remerciements reçus 0
je comprends pas.. mon script fonctionne parfaitement en V3 et je lance sur V4 et + et c'est le drame
j'ai ma fonction \"main\" sans argument qui construit et renvoi une collection d'items : New-Collection
[code:1]New-Collection {
....
$collection
}
Function CountError {
Param ([Parameter(Mandatory=$true)][array]$collection)
....
$counters
}
Function A {
Param ([Parameter(Mandatory=$true)][array]$collection)
add-content test.txt (CountError $collection)
}
$a = New-Collection
A $a
[/code:1]
en V3 ça marche ..
en V4 ca me dit que :
[code:1]
A : Impossible de lier l'argument au paramètre « collection », car il a la valeur Null.
+ A $a
+ ~
+ CategoryInfo : InvalidData : (:«») [A], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,A
[/code:1]
je comprends pas.. comment $a peut etre vide? sur la v4 et pas en v3
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
C'est les joies de Powershellje comprends pas.. comment $a peut etre vide? sur la v4 et pas en v3
Ceci dit un exemple concret est le bienvenue, et souvent celui-ci répond à la question.
Il faut savoir que chaque version de Powershell nécessite une recette. Car il peut y avoir des bugs de régression et des breakingchanges. Sur ce dernier point, la correction d'un bug, présent dans une version et corrigé dans la version suivante, peut être considéré comme un breakingchange. PS est un logiciel, comme tous les autres, soumis à cette contrainte.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- usopp
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 34
- Remerciements reçus 0
ici c'est comme si ma function voulait pas se lancer..donc $a est $null donc rien fonctionne..
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Caca en entrée, caca en sortie...oue .. mais quand on te file un environnement de tests en v3 et qu'on te dis aller maintenant on va tester ton script en prod sur du v4
usopp écrit:
Le découpage a du bon ici, tu peux isoler le pb.ici c'est comme si ma function voulait pas se lancer..donc $a est $null donc rien fonctionne..
Et surtout l'usage d'attributs sur les paramètres facilite la remontée de ce type de bug.
Utilise la fonction Resolve-Erreur dispo sur le net, et consulte le champ InvocationInfo. Cela peut préciser la source de l'erreur.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- usopp
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 34
- Remerciements reçus 0
Caca en entrée, caca en sortie...
lol !
mais le v3 aime le caca on dirait
Le découpage a du bon ici, tu peux isoler le pb.
Et surtout l'usage d'attributs sur les paramètres facilite la remontée de ce type de bug.
Utilise la fonction Resolve-Erreur dispo sur le net, et consulte le champ InvocationInfo. Cela peut préciser la source de l'erreur.
merci je connaissais pas je vais regarder ca demain
au pire j'essayerai peut etre le Set-PSDebug -trace 2 mais ca pique les yeux
mais dans tous les cas je sens que ca va me bouffer un temps de malade ..
ps : j'ai oublier de préciser que j'ai même pas acces a du V4 lol.. on me dit juste c'est bon ou pas..super !
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
ici, pas certains que ce soit le coupablemais le v3 aime le caca on dirait
usopp écrit:
C'est trop verbeux, et selon moi à utiliser en dernier recours.j'essayerai peut être le Set-PSDebug -trace 2 mais ca pique les yeux
usopp écrit:
Cela dépend si tu peux mettre en place des traces de debug dans un fichier.mais dans tous les cas je sens que ca va me bouffer un temps de malade ..
Je constate, mais je peux me tromper, que t'es dans un fonctionnement basé sur l'urgence et contre ça il n'y a rien à faire, à part subir.
Ton pb est peut être du à une fonction qui renvoie un élément, ici $null, et pas une collection comme tu le supposes.
Essaie de renvoyer le résultat avec [code:1]@()[/code:1].
Un objet collection vide est différent d'un objet null.
Si je me souviens bien il y a un breakingchange autour de ce point.<br><br>Message édité par: Laurent Dardenne, à: 30/10/14 20:43
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- Script v3 non fonctionnel en v4