Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1589 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [Powershell] recuperer un argument

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Powershell] recuperer un argument

n°2301551
chico008
what the wookie says ?
Posté le 04-06-2017 à 10:36:10  profilanswer
 

Bonjour
 
Je debut en powershell et j'ai un soucis
 
Je suis en train d’écrire un script, ou je passe nécessairement un paramètre en argument du script directement dans la ligne de commande
mon problème, je n'arrive pas a récupérer mon argument dans mon script
 
Exemple, je lance mon script comme ceci : ./test.ps1 -param toto
 
j'ai essayer dans mon script de faire un write-host $toto, ca marche pas
j'ai cherché un peu, beaucoup font un  
param ( [String]$toto)
 
mais chez moi il me dit que param n'est pas une fonction reconnue :(
 
Autant en KSH ou Bash j'ai aucun soucis, autant la je galère pour un truc tout con comme ca :(


---------------
Serveur HFR - OpenTTD
mood
Publicité
Posté le 04-06-2017 à 10:36:10  profilanswer
 

n°2301642
Bidem
Posté le 06-06-2017 à 12:03:27  profilanswer
 

Je ne connais pas powershell, donc j'ai cherché et trouvé cette page :
https://technet.microsoft.com/fr-fr [...] 54301.aspx
 
Entre la doc et ton code je vois 2 points à regarder :
 - la définition du bloc Param (note le 'P' majuscule)
 - le nom du paramètre que tu définis est toto donc ta ligne de commande doit plutôt être : ./test.ps1 -toto valeurDuParametre
 

n°2301968
chico008
what the wookie says ?
Posté le 13-06-2017 à 17:24:03  profilanswer
 

J'ai essayer, rien a faire
 

Code :
  1. Param ( [String]$toto )
  2. write-host "Test : $toto"
  3. write-host "Fin"


 
et l'execution

Code :
  1. D:\Test>powershell D:\Test\test.ps1 -toto coucou
  2. Param : Le terme «Param» n'est pas reconnu comme nom d'applet de commande, fonction, fichier de script ou programme
  3. exécutable. Vérifiez l'orthographe du nom, ou si un chemin d'accès existe, vérifiez que le chemin d'accès est correct
  4. et réessayez.
  5. Au caractère D:\Test\test.ps1:8 : 1
  6. + Param ( [String]$toto )
  7. + ~~~~~
  8.     + CategoryInfo          : ObjectNotFound: (Param:String) [], CommandNotFoundException
  9.     + FullyQualifiedErrorId : CommandNotFoundException
  10. Test :
  11. Fin


---------------
Serveur HFR - OpenTTD
n°2302010
marcci
Brouille l'écoute
Posté le 14-06-2017 à 16:08:11  profilanswer
 

Salut,
ton problème est "rigolot" tu dois avoir un PB d'installation de Powershell.
Car la bonne syntax est:

Code :
  1. param ([string]$toto)
  2. write-host "param: $toto"


Ni plus ni moins.
 
Il te reste la variable par défault des arguments: $args[]

Code :
  1. write-host $args[0]
  2. write-host $args[1]


 
Donne:

Code :
  1. PS C:\temp> ./test.ps1 coucou hello
  2. coucou
  3. hello


 


---------------
mais il y a pas des cite pour d/l psq je conner un pote i va sur cite | Molière nous pardonne...
n°2302108
chico008
what the wookie says ?
Posté le 16-06-2017 à 16:49:50  profilanswer
 

avec $args ca marche en effet, mais le Param, rien a faire
 
c'est Powershell fourni par defaut avec windows10, je n'ai fait aucune installation particulière, peut etre manque t'il un module complémentaire pour le Param ?


---------------
Serveur HFR - OpenTTD
n°2302131
marcci
Brouille l'écoute
Posté le 16-06-2017 à 23:15:59  profilanswer
 

param ne nécessite aucun module particulier, c'est un mot clé intrinsèque à powershell.
 
Essai de mettre à jour ton Framework .NET
 
Car si param ne fonctionne pas, tu n'iras pas très loin en powershell.


---------------
mais il y a pas des cite pour d/l psq je conner un pote i va sur cite | Molière nous pardonne...
n°2302143
Je@nb
Kindly give dime
Posté le 17-06-2017 à 14:19:52  profilanswer
 

Je viens de faire copier coller de ton "script" et ça marche très bien:

PS C:\> C:\Users\JB\Desktop\test.ps1 -toto "test
Test : test
Fin

n°2302250
chico008
what the wookie says ?
Posté le 20-06-2017 à 14:36:29  profilanswer
 

bah moi ca veut pas :(


---------------
Serveur HFR - OpenTTD
n°2302338
chico008
what the wookie says ?
Posté le 22-06-2017 à 07:57:25  profilanswer
 

je vient de decouvrir un truc
 
en commencant tout de suite la 1ere ligne par Param, ca a l'air de marcher
 
en 1ere ligne du mon script j'avais un commentaire, mais en mettant Param, ca marche
 
petite subtilité que je n'avais pas donc.


---------------
Serveur HFR - OpenTTD

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [Powershell] recuperer un argument

 

Sujets relatifs
Récupérer des informations dans un tableau HTML[git][Résolu] Récupérer un vieux projet oublié
[GIT] Récupérer une branch remote sous Netbeans[PowerShell] Installer un EXE depuis program files (X86)
récupérer texte d'un formulaire pour une fonction javascriptRécupérer les tag "Title" et "Alt" sur un diaporama d'images
Récupérer Nom Collaborateur utilisant un fichierRécupérer un projet ?
recupérer une chaine de texte d'un variable FORProblème avec boucle foreach powershell
Plus de sujets relatifs à : [Powershell] recuperer un argument


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR