Question Paramètres avec des espaces

Plus d'informations
il y a 13 ans 11 mois #11499 par SiSMik
Réponse de SiSMik sur le sujet Re:Paramètres avec des espaces
Gulrick écrit:

Par contre ta fonction ne marche pas Laurent, il rentre bien dans la fonction mais pas dans la boucle et pourtant aucun message d'erreur.

très étrange


Surement que la variables $args ne permet pas de faire un foreach. Essayez de faire un Write-Host $args avant la boucle pour voir ce qu'il se passe :)

@+

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 11 mois #11502 par Laurent Dardenne
Gulrick écrit:

Par contre j'ai la possibilité de les délimiter avec des guillemets ou d'autres symboles donc ça devrait le faire,

Tu utilises un outil bien conçu sur ce point là :)
Te voilà presque sortie d'affaire...

benduru écrit:
Surement que la variables $args ne permet pas de faire un foreach.
[/quote]
Un 'peut-être' eut été plus prudent :
[code:1]
function get-parameters {
$args.gettype()
$args -is [System.Collections.IEnumerable]
$args.count
}
Get-Parameters ceci estune suite de parametre avec desEspaces
Get-Parameters \"ceci estune suite de parametre avec desEspaces.\"
Get-Parameters 'ceci estune' suite 'de parametre avec' desEspaces
Get-Parameters ceci \"estune suite\" 'de parametre' \"avec desEspaces\"

Get-Parameters $null
Get-Parameters
[/code:1]
Seul le dernier appel n'est pas pris en compte par le foreach, $args est tjr un vu comme un tableau, l'instruction foreach ne fait rien sur un tableau vide, dans ce cas c'est un vaurien.

Donc PS ne fait rien lorsqu'on le lui demande de ne rien faire, et ça c'est cool !
Gulrick écrit:

Par contre ta fonction ne marche pas Laurent

As-tu vérifié ton premier appel ?
Et pourquoi utiliser un batch et pas un appel à Powershell directement ?<br><br>Message édité par: Laurent Dardenne, à: 11/04/12 20:50

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 11 mois #11503 par Guerric
Réponse de Guerric sur le sujet Re:Paramètres avec des espaces
J'ai du mal m'expliquer, j'essayais de faire la même chose en batch, mais sans y parvenir d'où le fait que je le script en PowerShell.

En fait la fonction fonctionnais, mais je me retrouvais devant un gros problème, je devais envoyer un mail, j'utilisais un start-process mailto:... mais impossible de comprendre pourquoi il me remplissais pas le Body du mail alors que la variable contenant le body était ok!

Un collègue est donc venu à mon renfort, et du coup je lance un commande de ce type :
Powershell d:\test.ps1 -Time \&quot;%DateTime\&quot; -Object \&quot;%Object\&quot; ...

Cela me permet dans mon script de récupérer directement les arguments avec leurs noms ( Time, Object...) ce qui est pratique pour s'y retrouver.

Ensuite j'ai utilisé la fonction Send-MailMessage qui permet d'envoyer un mail et de construire tout en une commande et ça fonctionne parfaitement

Merci à tous pour cette aide, qui fût très bonne malgré tout. Mais bloqué par un autre problème j'en ai trouvé une autre.

Si ça intéresse demain je pourrais poster le code ;)

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.088 secondes
Propulsé par Kunena