Question
[RESOLU] Erreur suite a Invoke-WebRequest
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Oui bien sûr. Je voulais m'assurer que le principe de base t'étaitPeut tu m'expliquer s'il te plait ?
1- connue, dans ce cas la solution est simple
2- inconnue, c'est le moment des explications alors
Dit comme ça on pourrait dire oui, mais le verbe Out est destiné à une usage bien particulier surtout si c'est un cmdlet natif.on m'avait ( ou plutôt Internet m'avait ) expliqué que -OutNull servait a dire a powershell qu'il devait attendre la fin de l’exécution de la commande rattachée a Out-Null avant d'entamer la suivante :/
Le verbe Wait est candidat sérieux pour le comportement que tu souhaites.
[code:1]
#exemple
Start-Job|Wait-Job
[/code:1]
Donc pour la commande en cause, elle indique à Powershell : \"prend ces données et mets les à la benne, ensuite ce résultat (c'est à dire rien ou $Null) tu l'affectes à la variable précisée.\"
Out-Null prend l'objet émis dans le pipeline et le supprime. Donc d'une certaine manière on attend bien la fin d'exécution du cmdlet précédent.
La suppression des appels à Out-Null devrait régler ton problème. Ensuite pour le download du fichier je n'ai jamais fait. Je ne saurais dire si c'est la bonne méthode.
Un cas où out-null est nécessaire pour supprimer une valeur de retour :
[code:1]
$List=[System.Collections.ArrayList]::new()
$list.Add('test avec valeur de retour')
#0
$list.Add('test sans valeur de retour')|out-null
#bah $null, donc pas d'affichage
#les signatures de la méthode
$list.Add
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Pierryck M
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 7
- Remerciements reçus 0
Pierre.M écrit:
Oui bien sûr. Je voulais m'assurer que le principe de base t'étaitPeut tu m'expliquer s'il te plait ?
1- connue, dans ce cas la solution est simple
2- inconnue, c'est le moment des explications alors
Dit comme ça on pourrait dire oui, mais le verbe Out est destiné à une usage bien particulier surtout si c'est un cmdlet natif.on m'avait ( ou plutôt Internet m'avait ) expliqué que -OutNull servait a dire a powershell qu'il devait attendre la fin de l’exécution de la commande rattachée a Out-Null avant d'entamer la suivante :/
Le verbe Wait est candidat sérieux pour le comportement que tu souhaites.
[code:1]
#exemple
Start-Job|Wait-Job
[/code:1]
Donc pour la commande en cause, elle indique à Powershell : \"prend ces données et mets les à la benne, ensuite ce résultat (c'est à dire rien ou $Null) tu l'affectes à la variable précisée.\"
Out-Null prend l'objet émis dans le pipeline et le supprime. Donc d'une certaine manière on attend bien la fin d'exécution du cmdlet précédent.
La suppression des appels à Out-Null devrait régler ton problème. Ensuite pour le download du fichier je n'ai jamais fait. Je ne saurais dire si c'est la bonne méthode.
Un cas où out-null est nécessaire pour supprimer une valeur de retour :
[code:1]
$List=[System.Collections.ArrayList]::new()
$list.Add('test avec valeur de retour')
#0
$list.Add('test sans valeur de retour')|out-null
#bah $null, donc pas d'affichage
#les signatures de la méthode
$list.Add
[/code:1]
C'est super je te remercie
Je vais me renseigner sur \" Wait \" et voir de quelle facon je peut l’intégrer a mon code ^^
Tes explications sont claires , j'ai compris ce a quoi servait \" Out \" et je t'en suis sincèrement reconnaissant ^^
Donc supprimer les Out devrait regler la premiere erreur et integrer \" Wait \" devrait me donner le comportement désiré c'est bien cela ?
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Oui pour la suppresion des appels à Out-Null.Donc supprimer les Out devrait régler la première erreur et intégrer \" Wait \" devrait me donner le comportement désiré c'est bien cela ?
Non pour l'usage du Wait.
C'était juste un exemple de verbe, consulte ceci .
L'usage de la convention Verbe-Nom porte bien plus d'informations qu'on le croit lorsqu'on débute.
Un job Powershell est une tâche de fond asynchrone, Start-job démarre le job( et continu l'exécution du script sans attendre la fin du job) et Wait attend la fin d'exécution du Job (si on le souhaite).
Dans le contexte d'un JOB la fonctionnalité Wait a du sens, mais pas dans un appel synchrone de Invoke-WebRequest.
Avec Invoke-WebRequest la fin de l'appel signifie la fin d'exécution, il n'y a plus rien à attendre.<br><br>Message édité par: Laurent Dardenne, à: 23/09/18 10:28
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Pierryck M
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 7
- Remerciements reçus 0
merci a toi et au forum
voici le code final :
[code:1]
$downloadURL = 'download2140.mediafire.com/mnwwbz2w845g/...dwr63i1x/1.2.13.Appx'
$downloadRequest = Invoke-WebRequest -Uri $downloadURL -OutFile \"C:\1.2.13.appx\" -PassThru
[/code:1]
Par ailleurs , je souhaiterais associer a ce processus une bar de progression sous forme d'un GUI , aurais tu quelques liens pour moi ? J'ai bien entendu cherché mais je n'ai trouvé que des barres de progressions via la console Powershell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Non désolé, moins j'utilise de GUI dans mes scripts mieux je me portePar ailleurs , je souhaiterais associer a ce processus une bar de progression sous forme d'un GUI , aurais tu quelques liens pour moi ?
Consulte ceci .
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Pierryck M
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 7
- Remerciements reçus 0
( eh oui , pardonne les retards , je suis quelqu'un qui prends beaucoup de temps a comprendre un domaine inconnu
Merci encore de ton aide , promis j'arrete de t'embeter sur ce topic
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [RESOLU] Erreur suite a Invoke-WebRequest