Question [RESOLU] Erreur suite a Invoke-WebRequest

Plus d'informations
il y a 7 ans 6 mois #27599 par Laurent Dardenne
Pierre.M écrit:

Peut tu m'expliquer s'il te plait ?

Oui bien sûr. Je voulais m'assurer que le principe de base t'était
1- connue, dans ce cas la solution est simple
2- inconnue, c'est le moment des explications alors :)

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 :/

Dit comme ça on pourrait dire oui, mais le verbe Out est destiné à une usage bien particulier surtout si c'est un cmdlet natif.

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.

Plus d'informations
il y a 7 ans 6 mois #27600 par Pierryck M
Laurent Dardenne écrit:

Pierre.M écrit:

Peut tu m'expliquer s'il te plait ?

Oui bien sûr. Je voulais m'assurer que le principe de base t'était
1- connue, dans ce cas la solution est simple
2- inconnue, c'est le moment des explications alors :)

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 :/

Dit comme ça on pourrait dire oui, mais le verbe Out est destiné à une usage bien particulier surtout si c'est un cmdlet natif.

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 :laugh:

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 \&quot; Wait \&quot; devrait me donner le comportement désiré c'est bien cela ? :side:<br><br>Message édité par: Pierre.M, à: 23/09/18 08:33

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

Plus d'informations
il y a 7 ans 6 mois #27601 par Laurent Dardenne
Pierre.M écrit:

Donc supprimer les Out devrait régler la première erreur et intégrer \&quot; Wait \&quot; devrait me donner le comportement désiré c'est bien cela ?

Oui pour la suppresion des appels à Out-Null.
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.

Plus d'informations
il y a 7 ans 5 mois #27648 par Pierryck M
Merci pour ton aide ( et desolé du retard ) j'ai analysé le document donné et essayé d'autres syntaxes et j'ai trouvé :D
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 \&quot;C:\1.2.13.appx\&quot; -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 :blush:

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

Plus d'informations
il y a 7 ans 5 mois #27649 par Laurent Dardenne
Pierre.M écrit:

Par ailleurs , je souhaiterais associer a ce processus une bar de progression sous forme d'un GUI , aurais tu quelques liens pour moi ?

Non désolé, moins j'utilise de GUI dans mes scripts mieux je me porte :)
Consulte ceci .

Tutoriels PowerShell

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

Plus d'informations
il y a 7 ans 5 mois #27675 par Pierryck M
C'est tout bon merci infiniment pour ton aide , j'ai la syntaxe nécessaire et ton lien m'a bien aidé pour ma barre de progression ^^
( eh oui , pardonne les retards , je suis quelqu'un qui prends beaucoup de temps a comprendre un domaine inconnu :P )

Merci encore de ton aide , promis j'arrete de t'embeter sur ce topic ;)

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

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