Question
script powershell appellé avec des arguments vides
- CGR
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 12 ans 3 semaines #17394
par CGR
script powershell appellé avec des arguments vides a été créé par CGR
Bonjour à tous,
J'ai un problème pour lancer un script avec des arguments, il doit se lancer de la sorte :
Powershell.exe D:\AppDSI\PPRGLB\EDE\cmd\TEST.PS1 -parm1 testparm -parm2 12 -parm3 E:\Data\test.csv -parm4 TEST -parm5 45
Tout se passe correctement si les arguments parm1 à 5 ont des valeurs.
Le problème apparait lorsque j'ai des paramètres qui sont vides, comme par exemple si parm1 = vide; la commande devient :
Powershell.exe D:\AppDSI\PPRGLB\EDE\cmd\TEST.PS1 -parm1 -parm2 12 -parm3 E:\Data\test.csv -parm4 TEST -parm5 45
Missing an argument for parameter 'parm1'
Comment puis-je faire pour qu'un paramètre puisse être vide? J'ai essayé DANS le script de forcer une valeur :
[code:1]param
(
$parm1 = \"vide\"
)[/code:1]
mais cela n'est pas la solution car c'est la facon dont j'appelle la commande qui pose problème!
Je sais qu'en retirant le -parm1 de ma commande, cela va fonctionner, mais je ne saurais jamais à l'avance si mes paramètres seront vides ou non et ce script doit se lancer automatiquement...
Powershell.exe D:\AppDSI\PPRGLB\EDE\cmd\TEST.PS1 -parm2 12 -parm3 E:\Data\test.csv -parm4 TEST -parm5 45
J'ai cherché un peu sur google sans trouver de solution...
Pouvez vous m'aider?
En vous remerciant par avance
PS : je pourrais forcer l'ajout d'un caractère à mes paramètres et le retirer ensuite dans le script.Par exemple :
-parm1 #testparm
-parm2 #12
-parm3 #E:\Data\test.csv
-parm4 #TEST
Cela ferait que les paramètres ne seraient jamais vides mais si vous avez une meilleur solution, je suis preneur.
J'ai un problème pour lancer un script avec des arguments, il doit se lancer de la sorte :
Powershell.exe D:\AppDSI\PPRGLB\EDE\cmd\TEST.PS1 -parm1 testparm -parm2 12 -parm3 E:\Data\test.csv -parm4 TEST -parm5 45
Tout se passe correctement si les arguments parm1 à 5 ont des valeurs.
Le problème apparait lorsque j'ai des paramètres qui sont vides, comme par exemple si parm1 = vide; la commande devient :
Powershell.exe D:\AppDSI\PPRGLB\EDE\cmd\TEST.PS1 -parm1 -parm2 12 -parm3 E:\Data\test.csv -parm4 TEST -parm5 45
Missing an argument for parameter 'parm1'
Comment puis-je faire pour qu'un paramètre puisse être vide? J'ai essayé DANS le script de forcer une valeur :
[code:1]param
(
$parm1 = \"vide\"
)[/code:1]
mais cela n'est pas la solution car c'est la facon dont j'appelle la commande qui pose problème!
Je sais qu'en retirant le -parm1 de ma commande, cela va fonctionner, mais je ne saurais jamais à l'avance si mes paramètres seront vides ou non et ce script doit se lancer automatiquement...
Powershell.exe D:\AppDSI\PPRGLB\EDE\cmd\TEST.PS1 -parm2 12 -parm3 E:\Data\test.csv -parm4 TEST -parm5 45
J'ai cherché un peu sur google sans trouver de solution...
Pouvez vous m'aider?
En vous remerciant par avance
PS : je pourrais forcer l'ajout d'un caractère à mes paramètres et le retirer ensuite dans le script.Par exemple :
-parm1 #testparm
-parm2 #12
-parm3 #E:\Data\test.csv
-parm4 #TEST
Cela ferait que les paramètres ne seraient jamais vides mais si vous avez une meilleur solution, je suis preneur.
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 12 ans 3 semaines #17397
par Philippe
Réponse de Philippe sur le sujet Re:script powershell appellé avec des arguments vides
salut
quand tu met -param1 tu indique a powershell qu'une info va obligatoirement suivre -param1
soit tu enlève -param1
soit tu met un paramètre vide mis entre quotes ('')
ex :
[code:1]Powershell.exe D:\App\DSI\PPRGLBEDE\cmdTEST.PS1 -parm1 '' -parm2 12 -parm3 E:«»Datatest.csv -parm4 TEST -parm5 45[/code:1]
test si ca te convient
quand tu met -param1 tu indique a powershell qu'une info va obligatoirement suivre -param1
soit tu enlève -param1
soit tu met un paramètre vide mis entre quotes ('')
ex :
[code:1]Powershell.exe D:\App\DSI\PPRGLBEDE\cmdTEST.PS1 -parm1 '' -parm2 12 -parm3 E:«»Datatest.csv -parm4 TEST -parm5 45[/code:1]
test si ca te convient
Connexion ou Créer un compte pour participer à la conversation.
- CGR
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 12 ans 3 semaines #17401
par CGR
Réponse de CGR sur le sujet Re:script powershell appellé avec des arguments vides
Salut,
merci pour la réponse 6ratgus mais cela ne fonctionne pas sur mon serveur (Windows 2008r2 et powershell v2.0).
J'ai essayé
-parm1 ''
-parm1 ' '
-parm1 \"\"
-parm1 \" \"
-parm1 ``
-parm1 ` `
mais rien n'y fait, j'ai toujours l'erreur
Missing an argument for parameter 'parm1'. Specify a parameter of type 'System.Object' and try again.
comme je ne sais pas si parm1 aura une valeur, je ne peux pas l'enlever de la commande...
je crois que je vais bidouiller pour forcer une valeur car je ne trouve pas d'autre solution...
si je trouve, je déposerai l'astuce
merci pour la réponse 6ratgus mais cela ne fonctionne pas sur mon serveur (Windows 2008r2 et powershell v2.0).
J'ai essayé
-parm1 ''
-parm1 ' '
-parm1 \"\"
-parm1 \" \"
-parm1 ``
-parm1 ` `
mais rien n'y fait, j'ai toujours l'erreur
Missing an argument for parameter 'parm1'. Specify a parameter of type 'System.Object' and try again.
comme je ne sais pas si parm1 aura une valeur, je ne peux pas l'enlever de la commande...
je crois que je vais bidouiller pour forcer une valeur car je ne trouve pas d'autre solution...
si je trouve, je déposerai l'astuce
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 12 ans 3 semaines #17403
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:script powershell appellé avec des arguments vides
Salut,
peux nous communiquer le contenu de la clause Param de ton script ?
peux nous communiquer le contenu de la clause Param de ton script ?
Tutoriels PowerShell
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 12 ans 3 semaines #17404
par Philippe
Réponse de Philippe sur le sujet Re:script powershell appellé avec des arguments vides
salut
comme semble dire le message et pensé Laurent,
le paramètre attendu doit sans doute être un entier, hors on lui passe une chaine avec les deux quottes.
pour le confirmer ils nous faudrait les premières lignes au debut du script avec les parameter.
si c'est le cas, il faudra que tu mette pour ce paramètre là un zéro (0) sans les quottes quand il n'y a pas de valeur
et sinon zéro suivit de la valeurs.
ex :
[code:1]
parm1 avec fichier
parm2 vide
Powershell.exe D:\App\DSI\PPRGLBEDE\cmdTEST.PS1 -parm1 'fichier' -parm2 0
ou
parm1 vide
parm2 avec 12
Powershell.exe D:\App\DSI\PPRGLBEDE\cmdTEST.PS1 -parm1 '' -parm2 012
ou
parm1 avec test
parm2 avec 12
Powershell.exe D:\App\DSI\PPRGLBEDE\cmdTEST.PS1 -parm1 'test' -parm2 012 [/code:1]
PS : attention avec cette modif tes paramètres ne seront jamais null mais equal a zéro ou a \"\"(vide)
vérifie tous tes if, where et autre contrôle.
tiens nous au courant !<br><br>Message édité par: 6ratgus, à: 25/04/14 10:39
comme semble dire le message et pensé Laurent,
le paramètre attendu doit sans doute être un entier, hors on lui passe une chaine avec les deux quottes.
pour le confirmer ils nous faudrait les premières lignes au debut du script avec les parameter.
si c'est le cas, il faudra que tu mette pour ce paramètre là un zéro (0) sans les quottes quand il n'y a pas de valeur
et sinon zéro suivit de la valeurs.
ex :
[code:1]
parm1 avec fichier
parm2 vide
Powershell.exe D:\App\DSI\PPRGLBEDE\cmdTEST.PS1 -parm1 'fichier' -parm2 0
ou
parm1 vide
parm2 avec 12
Powershell.exe D:\App\DSI\PPRGLBEDE\cmdTEST.PS1 -parm1 '' -parm2 012
ou
parm1 avec test
parm2 avec 12
Powershell.exe D:\App\DSI\PPRGLBEDE\cmdTEST.PS1 -parm1 'test' -parm2 012 [/code:1]
PS : attention avec cette modif tes paramètres ne seront jamais null mais equal a zéro ou a \"\"(vide)
vérifie tous tes if, where et autre contrôle.
tiens nous au courant !<br><br>Message édité par: 6ratgus, à: 25/04/14 10:39
Connexion ou Créer un compte pour participer à la conversation.
- ANTRI Mohamed
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 124
- Remerciements reçus 0
il y a 12 ans 3 semaines #17405
par ANTRI Mohamed
Réponse de ANTRI Mohamed sur le sujet script powershell appellé avec des arguments vides
Bonjour,
Pourquoi ne pas utiliser les fonctionnalités avancées ? Ainsi il pourrait bénéficier de l'attribut [code:1]Mandatory = $true ou $false[/code:1] sur un paramètre.
Pourquoi ne pas utiliser les fonctionnalités avancées ? Ainsi il pourrait bénéficier de l'attribut [code:1]Mandatory = $true ou $false[/code:1] sur un paramètre.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.046 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- script powershell appellé avec des arguments vides